为什么_printf_l无法打印中文语言环境的多字节字符串

时间:2011-01-07 04:42:18

标签: unicode

我正在使用Windows 7,VS2008来测试以下代码:

    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 个答案:

答案 0 :(得分:1)

这不是绝对的答案,因为不同平台上的unicode可能很棘手。但是如果你的Windows 7是英文版,那么你可能想尝试使用Powershell ISE查看输出。我在用Ruby编写程序时用它打印出unicode。

相关问题