我需要生成一個UTF8字符串傳遞給第三方庫,我很難搞清楚正確的體操...另外,爲了讓事情變得更糟,我被卡在C++ Builder 6中例如我發現使用std :: string的CBuilder6顯然不支持。我想在不使用STL的情況下實現這一點。UTF8轉換
這是我的代碼到目前爲止,我似乎無法工作。
wchar_t *SS1;
char *SS2;
SS1 = L"select * from mnemonics;";
int strsize = WideCharToMultiByte(CP_UTF8, 0, SS1, wcslen(SS1), NULL, 0, NULL, NULL);
SS2 = new char[strsize+1];
WideCharToMultiByte(CP_UTF8, 0, SS1, wcslen(SS1), SS2, strsize, NULL, NULL);
第三方庫扼流器,當我通過它SS2作爲參數。很顯然,我在使用微軟的WideCharToMultiByte的Windows平臺上,但最終我不想要這個函數調用,因爲這個代碼也必須在嵌入式平臺上編譯,也可以在Linux下編譯,但是當我到達它時我會跨過那個橋樑。
現在,我只需要能夠將wchar_t或char轉換爲UTF8編碼的字符串,而不使用任何STL。我不會在嵌入式平臺上使用STL。
謝謝!
正是我一直在尋找。雖然對於CBuilder6,我不得不添加一些#defines來使其工作。 CBuilder6不知道_stricmp(知道它是stricmp),它不知道我用sprintf修復的_itoa ...很好!謝謝! – Eric 2011-04-10 09:48:58