2011-01-07 47 views
1

我使用Windows 7的多字節字符串,VS2008測試下面的代碼:爲什麼_printf_l不能打印區域中國

wchar_t *pWCBuffer = L"你好,世界"; // some Chinese character 

    char *pMBBuffer = (char *)malloc(BUFFER_SIZE); 
    _locale_t locChinese = _create_locale(LC_CTYPE, "chs"); 

    _wcstombs_l(pMBBuffer, pWCBuffer, BUFFER_SIZE, locChinese); 
    _printf_l("Multibyte character: %s\n\n", locChinese, pMBBuffer); 

我一個寬字符串轉換爲多字節字符串,然後把它打印出來,用中國的語言環境,但是打印出來的字符串並不正確,這是很奇怪的:──║║ú¼╩└╜τ

如何才能打印出正確的多字節字符串?

回答

1

這不是絕對的答案,因爲unicode在不同的平臺上可能會很棘手。但是,如果您的Windows 7是英文版,那麼您可能需要嘗試Powershell ISE來查看輸出。我也使用它在Ruby中編寫程序時打印出unicode。

+0

這是一個好點 - 也許這是一個窗口控制檯的限制... – 2011-01-07 05:13:51