正文

控制台程序下输出UNICODE汉字2010-03-22 17:25:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/miaowei/50816.html

分享到:

其实,我在UNICODE环境下进行开发已经很久了,原来也对UNICODE的一些操作非常多。但是,今天同事突然想在控制台程序中输出几个UNICODE汉字,是根据这些汉字的UNICODE码来输出。开始他试图用printf来输出,这样肯定不行。我就让他利用 wprintf来输出看看可以吧。结果好像用 wprintf也不行。

这让我很郁闷的,这么简单的问题我以前难道没有注意吗。于是想了想,好像我以前自己做了一套各种字符集之间转码的程序,一般中文的话,我都转成GB码在输出,好像是没有接触到这个问题。

没办法,只有虚心的再google了。发现,其实在控制台下,系统默认的local 字符集是GB码的(指安装中文操作系统的)。而在我们使用UNICODE的东西时候,是系统帮助我们进行宽字符转到多字节字符的。

所以,如果想让控制台程序下直接显示UNICODE的汉字,必须对控制台的编码进行一些local设置。代码如下,

#include <locale.h>

 setlocale(LC_ALL, "chs");
 wchar_t ch = 0x4e2d;

 wprintf(L"%c\n",ch);
// _tprintf(_T("%c"),ch);

这个还有一个好处,就是,这种设置的方法不会影响本来用printf输出的多字符集的汉字输出。

 

阅读(5868) | 评论(3)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册