Unicode 为什么打印可以';t打印中文区域设置的多字节字符串

Unicode 为什么打印可以';t打印中文区域设置的多字节字符串,unicode,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, BUFF

我正在使用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 );
我将宽字符串转换为多字节字符串,然后使用中文区域设置将其打印出来,但打印出来的字符串不正确,有点奇怪,如:─π║├ú¼╩└╜τ


我怎样才能打印出正确的多字节字符串?

这不是一个绝对的答案,因为不同平台上的unicode可能很棘手。但是,如果您的Windows 7是英文版本,则您可能希望尝试Powershell ISE以查看输出。在用Ruby编写程序时,我也用它来打印unicode。

这不是一个绝对的答案,因为不同平台上的unicode可能很棘手。但是,如果您的Windows 7是英文版本,则您可能希望尝试Powershell ISE以查看输出。在用Ruby编写程序时,我也使用它来打印unicode