1
wchar_t的。如果我知道這2中國性格你好str中的Unicode碼點轉換碼點在C
我如何轉換這個字符*海峽碼點,以中國文字,並將其指定爲wchar_t * WSTR?
char * str = "4F60 597D";
wchar_t * wstr;
我知道我可以直接指定這樣和問題解決。
wchar_t * wstr = L"\u4F60\u597D";
但我的問題比這更復雜,我的情況不允許。
我該如何做文字代碼轉換爲wchar_t *?
謝謝。
我正在使用MS Visual C與字符集設置爲MBCS,假設我不能使用UNICODE字符集。
UPDATE: 對不起,只是校正的wchar_t的WSTR到wchar_t的* WSTR
UPDATE 炭* STR包含的UTF-8編碼單元序列,對於2中國字符你好
char * str = "\xE4\xBD\xA0\xE5\xA5\xBD";
size_t len = strlen(str) + 1;
wchar_t * wstr = new wchar_t[len];
size_t convertedSize = 0;
_locale_t local = _create_locale(LC_ALL , "Chinese");
_mbstowcs_s_l(&convertedSize, wstr, len, str, _TRUNCATE, local);
MessageBoxW(NULL, wstr , (LPCWSTR)L"Hello", MB_OK);
爲什麼MessageBox打印出日文字符?而不是中國人?什麼是正確的語言環境名稱使用?
這個問題相當混亂。你現在究竟做了什麼?一個帶有大量代表UNICODE代碼點的十六進制代碼的char * MBCS應該採用什麼編碼? – RedX
@WhozCraig:是的,對不起,我剛剛糾正了這一點。 – William
@RedX:是的,我有一個char *,它有很多由空格分隔的unicode codepoint。我需要將其轉換爲wchar_t *。對不起,我不明白「什麼編碼應該是MBCS」。 – William