首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >V8是否支持Unicode?

V8是否支持Unicode?
EN

Stack Overflow用户
提问于 2013-04-30 14:50:53
回答 4查看 2.5K关注 0票数 3

我使用v8在本机(c++)代码中使用JavaScript。要调用Javascript函数,我需要将所有参数转换为v8数据类型。例如:Code to convert char* to v8 data type

代码语言:javascript
复制
char* value;
...
v8::String::New(value);

现在,我需要向JavaScript传递unicode chars(wchar_t)。

首先,v8支持Unicode字符吗?如果是,如何将wchar_t/std::wstring转换为v8数据类型?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-01-11 21:09:04

我不确定在提出这个问题时是不是这样,但目前V8 API有许多支持UTF8、UTF16和拉丁文-1编码文本的函数:

https://github.com/v8/v8/blob/master/include/v8.h

创建新字符串对象的相关函数包括:

拉丁(UTF-8编码,obviously)

  • String::NewFromOneByte (
  • String::NewFromUtf8 -1 encoded)
  • String::NewFromTwoByte (UTF-16编码)

或者,您可以避免复制字符串数据,而构造一个引用现有数据(其生命周期由您控制)的V8字符串对象:

  • String::NewExternalOneByte (拉丁文-1 encoded)
  • String::NewExternalTwoByte (UTF-16编码)
票数 3
EN

Stack Overflow用户

发布于 2013-04-30 15:25:23

Unicode只是将字符映射到数字。您需要的是适当的编码,如UTF8或UTF-16。

V8似乎支持UTF-8 (v8::String::WriteUtf8)和未进一步描述的16位类型(写入)。我会试一试,并在其中写入一些UTF-16。

在unicode应用程序中,windows将UTF-16存储在std::wstring中。也许你可以试着这样做

代码语言:javascript
复制
std::wstring yourString;
v8::String::New (yourString.c_str());
票数 0
EN

Stack Overflow用户

发布于 2013-05-03 15:00:20

下面的代码做到了这一点

代码语言:javascript
复制
wchar_t path[1024] = L"gokulestás";

v8::String::New((uint16_t*)path, wcslen(path))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16293923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档