为什么printf可以打印中文,而wprintf却一定要setlocale才能正确打印?解决办法
为什么printf可以打印中文,而wprintf却一定要setlocale才能正确打印?
我的VC工程不论是MBCS还是Unicode,发现printf总是能正确打印char*表示的中文。
而wprintf打印wchar_t*的中文,必须要先设置setlocal(LC_ALL,"chs")才行,否则打印一堆乱码。
我的问题是:
(1)为什么printf能正常打印中文,而不是按字节打印出一堆ascii字符。
(2)wprintf既然是打印L()包裹的中文,那么它为什么不能工作?我当前就是中文系统啊,本机运行,没有更换到英文系统上。那么还要在此之前setlocale我总感觉有点多次一举啊。
大侠解释一下吧 !
------解决方案--------------------
WriteFile的代码已经定好了,不受你工程的影响
我的VC工程不论是MBCS还是Unicode,发现printf总是能正确打印char*表示的中文。
而wprintf打印wchar_t*的中文,必须要先设置setlocal(LC_ALL,"chs")才行,否则打印一堆乱码。
我的问题是:
(1)为什么printf能正常打印中文,而不是按字节打印出一堆ascii字符。
(2)wprintf既然是打印L()包裹的中文,那么它为什么不能工作?我当前就是中文系统啊,本机运行,没有更换到英文系统上。那么还要在此之前setlocale我总感觉有点多次一举啊。
大侠解释一下吧 !
------解决方案--------------------
WriteFile的代码已经定好了,不受你工程的影响