wprintf_s及TRACE()不能正常输出中文的解决办法
使用如下方法调用wprintf_s输出中文时往往出现带 ? 的乱码:
wprintf_s(L " %s " ,(LPCWSTR)cmdLineArr[ 1 ]);
解决方案:
#include < locale.h >
setlocale(LC_ALL, " chs " );
这样wprintf_s便能正常打印出中文字符串了:
同样对于TRACE(_T( " 第一个:%s,第二个:%s " ),str1,str2);
如果运行输出信息:“_CrtDbgReport: String too long or IO Error”。
使用如下方法调用wprintf_s输出中文时往往出现带 ? 的乱码:
wprintf_s(L " %s " ,(LPCWSTR)cmdLineArr[ 1 ]);
解决方案:
#include < locale.h >
setlocale(LC_ALL, " chs " );
这样wprintf_s便能正常打印出中文字符串了:
同样对于TRACE(_T( " 第一个:%s,第二个:%s " ),str1,str2);
如果运行输出信息:“_CrtDbgReport: String too long or IO Error”。
亦可用上述方法解决。
转自http://www.cppblog.com/aaxron/archive/2010/10/27/131509.aspx