如何在 Google V8 引擎中创建 utf8 字符串
你好,我使用嵌入在 C++ 程序中的 v8 引擎,我遇到了一个字符串问题。
当然,v8 引擎完全支持 utf8 字符串,但我只是不知道如何支持。
char path[ 1024 ];
GetCurrentDirectory( 1024, (LPWSTR)path );
script->Path = String::New(path);
然而,结果是唯一的字符“D”,对于 String::New 只接受 char* 和 utf_16*
我检查了 v8 文档,发现没有办法制作 utf8 字符串,有人可以帮助我吗?
Hello Im using v8 engine embedded in C++ program and I met a string problem.
Well of course v8 engine fully support utf8 string, but i just dont know how.
char path[ 1024 ];
GetCurrentDirectory( 1024, (LPWSTR)path );
script->Path = String::New(path);
However, the result is the only character "D", for String::New only accepts char* and utf_16*
I checked the v8 document and found no way to make a utf8 string, can anybody help me?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
由于您必须将“path”转换为 LPWSTR,因此看起来您正在为 GetCurrentDirectory(UTF-16)调用宽字符串(unicode)Win32 API。尝试将“路径”声明为 wchar_t。如果 utf_16 是 wchar_t 的 typedef,则它可以直接与 String::New 一起使用。
Since you had to cast "path" to LPWSTR, it looks like you are calling the wide-string (unicode) Win32 API for GetCurrentDirectory, which is UTF-16. Try declaring "path" as wchar_t instead. If utf_16 is a typedef for wchar_t, it may work directly with String::New.