我使用v8在本机(c++)代码中使用JavaScript。要调用Javascript函数,我需要将所有参数转换为v8数据类型。例如:Code to convert char* to v8 data type
char* value;
...
v8::String::New(value);现在,我需要向JavaScript传递unicode chars(wchar_t)。
首先,v8支持Unicode字符吗?如果是,如何将wchar_t/std::wstring转换为v8数据类型?
发布于 2016-01-11 21:09:04
我不确定在提出这个问题时是不是这样,但目前V8 API有许多支持UTF8、UTF16和拉丁文-1编码文本的函数:
https://github.com/v8/v8/blob/master/include/v8.h
创建新字符串对象的相关函数包括:
拉丁(UTF-8编码,obviously)
或者,您可以避免复制字符串数据,而构造一个引用现有数据(其生命周期由您控制)的V8字符串对象:
发布于 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中。也许你可以试着这样做
std::wstring yourString;
v8::String::New (yourString.c_str());发布于 2013-05-03 15:00:20
下面的代码做到了这一点
wchar_t path[1024] = L"gokulestás";
v8::String::New((uint16_t*)path, wcslen(path))https://stackoverflow.com/questions/16293923
复制相似问题