轉自http://www.vckbase.com/document/viewdoc/?id=1488
1、函數 WideCharToMultiByte(),轉換 UNICODE 到 MBCS。
LPCOLESTR lpw = L"Hello,你好"; size_t wLen = wcslen( lpw ) + 1; // 寬字符字符長度,+1表示包含字符串結束符 int aLen=WideCharToMultiByte( // 第一次調用,計算所需 MBCS 字符串字節長度 CP_ACP, 0, lpw, // 寬字符串指針 wLen, // 字符長度 NULL, 0, // 參數0表示計算轉換後的字符空間 NULL, NULL); LPSTR lpa = new char [aLen]; WideCharToMultiByte( CP_ACP, 0, lpw, wLen, lpa, // 轉換後的字符串指針 aLen, // 給出空間大小 NULL, NULL); // 此時,lpa 中保存着轉換後的 MBCS 字符串 ... ... ... ... delete [] lpa;
2、函數 MultiByteToWideChar(),轉換 MBCS 到 UNICODE。使用範例:
LPCSTR lpa = "Hello,你好"; size_t aLen = strlen( lpa ) + 1; int wLen = MultiByteToWideChar( CP_ACP, 0, lpa, aLen, NULL, 0); LPOLESTR lpw = new WCHAR [wLen]; MultiByteToWideChar( CP_ACP, 0, lpa, aLen, lpw, wLen); ... ... ... ... delete [] lpw;