我想移植我們的應用程序(適用於Windows,Linux,Solaris,AIX等),但是我遇到了很多地區問題。此代碼適用於所有平臺,除了OSX:osx locale bug?
#define SIZE 1000
int main(int argc, const char * argv[])
{
char dest[SIZE];
wchar_t *dptr = L"árvíztűrőtükörfúrógép";
size_t count = SIZE;
size_t length;
setlocale(LC_CTYPE, "");
length = wcstombs(dest, dptr, count);
printf("%d characters were converted.\n", length);
printf("The converted string is \"%s\"\n\n", dest);
}
請幫我傢伙,打印在ISO-8859-2編碼終端的文本!
非常感謝!
也許你還應該描述它是如何失敗的?轉換呼叫後你會得到什麼? – unwind
當終端編碼爲UTF-8且LC_CTYPE爲「C」時,一切正常,但終端編碼爲中歐(ISO拉丁2)且LC_CTYPE爲「hu_HU.ISO8859-2」時,我得到:-1個字符被轉換。 轉換後的字符串是「árvízt」。它不符合「ő」和「ű」字符。 – user1333856