有关宽字符wchar_t编码方式的问题

在工程文件时,常常遇到字符乱码的问题,查了下,归结于宽字符wchar_t和窄字符char的区别。
简单说下这两者之间的区别:
1、char是8bit数据,能表示ASCII码中前256个字符,包括前128个可见字符和后128个不可见字符。
2、wchar_t是因为char所能表示的字符数太少(256个)而应运而生的,它的长度可以8bit,16bit,32bit,长度是与不同平台上的c库相关的。其实这个长度是根据指定平台上想要用的encoding编码方式来设定的。

在win32 MSVC环境下,c库中wchar_t的长度是2个byte,定义如下:

    typedef unsigned short wchar_t; /* 16 bits */

wchar_t是按照UTF-16编码方式设定的,但是wchar_t只要两个字节,所以它只能表示UTF-16的一个子集。wchar_t就是存储的字符的unicode码值的编码值,在windows下就是unicode码值的UTF-16编码值:

在VS中,UNICODE编码和ANSI编码的区别如下:

 wchar_t   w1= L'中';  //Unicode 编码
 wchar_t   w2= '中';   //Ansi编码

具体信息详见:http://blog.csdn.net/nodeathphoenix/article/details/7416725

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值