網上很多資料都要求我們把嵌入CEF3的工程屬性改為支援UNICODE字元集。當然如果條件允許無疑是比較好的,因為CEF3的DLL應該就是Unicode字元集的。但是如果我們已經完成的工程是建立在多位元組字元集上的,要把它改為UNICODE字元集無疑非常麻煩。
如果我們的工程是支援多位元組字元集,同樣可以直接嵌入CEF3,不過在向CEF3傳入中文字元的時候要先将字元轉碼,下面提供一個轉碼函數。
static char* MBSCToCEF(const char* mbcsStr)
{
wchar_t* wideStr;
char* utf8Str;
int charLen;
charLen = MultiByteToWideChar(CP_UTF8, 0, mbcsStr, -1, NULL, 0);
charLen=strlen(mbcsStr)+1;
wideStr = (wchar_t*) malloc(sizeof(wchar_t)*charLen);
MultiByteToWideChar(CP_ACP, 0, mbcsStr, -1, wideStr, charLen);
charLen = WideCharToMultiByte(CP_UTF8, 0, wideStr, -1, NULL, 0, NULL, NULL);
utf8Str = (char*) malloc(charLen);
WideCharToMultiByte(CP_UTF8, 0, wideStr, -1, utf8Str, charLen, NULL, NULL);
free(wideStr);
return utf8Str;
}