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;

} 




發佈了35 篇原創文章 · 獲贊 21 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章