天天看點

CEF3自研究筆記 四、CEF3關于多位元組字元集和UNICODE字元集

      網上很多資料都要求我們把嵌入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;

}