3
如何在英特爾C編譯器中定義俄語字符串? 在MSVS 2008我這樣做:英特爾C編譯器和L「」前綴
_wsetlocale(LC_ALL, L"Russian");
wprintf(L"текст");
它的工作原理。 在ICC中不起作用。
如何在英特爾C編譯器中定義俄語字符串? 在MSVS 2008我這樣做:英特爾C編譯器和L「」前綴
_wsetlocale(LC_ALL, L"Russian");
wprintf(L"текст");
它的工作原理。 在ICC中不起作用。
爲了診斷問題,我會檢查這些字符在編譯過程中得到的編碼值。有了這樣一些代碼:
wchar_t *x = L"текст";
for(int i=0; x[i] != L'\0'; i++)
{
printf("%02x\n", x[i]);
}
你可能想改變這種狀況"%02x"
到"%04x"
如果sizeof(wchar_t) == 4
。
如果值不同,則編譯器可能會使用不同的編碼來解釋源文件,這可能是編譯時問題。
我會避免在源文件中使用代碼點> U + 007F,將字符串外部化爲資源文件並使用適當的編碼加載它們。如果你願意,你可以嘗試使用Unicode轉義序列(如L"\u0442\u0435\u043a\u0441\u0442"
)。