2010-08-09 115 views
1

Hello Im使用嵌入在C++程序中的v8引擎,我遇到了一個字符串問題。如何在Google V8引擎中創建utf8字符串

那麼當然v8引擎完全支持utf8字符串,但我只是不知道如何。

char path[ 1024 ]; 

GetCurrentDirectory(1024, (LPWSTR)path); 

script->Path = String::New(path); 

但是,結果是唯一的字符「d」,絃樂::新只接受char *與utf_16 *

我檢查了V8文件,發現沒有辦法讓一個UTF8字符串,有誰能夠幫助我?

回答

3

由於您必須將「路徑」轉換爲LPWSTR,因此您似乎正在爲GetCurrentDirectory(UTF-16)調用寬字符串(unicode)Win32 API。嘗試將「path」聲明爲wchar_t。如果utf_16是wchar_t的typedef,它可以直接使用String :: New。

+0

thx爲您的提示,這是最後的工作代碼: \t WCHAR path [1024]; \t GetCurrentDirectory(1024,(LPWSTR)path); \t script-> Path = String :: New((uint16_t *)path,wcslen(path)); – Cauly 2010-08-10 06:13:39