2011-01-07 44 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