对ASCII、UNICODE、DBCS/MBCS、char、wchar_t的学习笔记

ASCII是用8位表示的一种编码方法、UNICODE是用16位(两个字节)表示的一种编码方法。(具体详细参考其他关于ASCII/UNICODE文章)

DBCS/MBCS是Double/Multi Byte Character Set,是专为亚洲地区(如中日韩)操作系统提供的一种编码方式,根据数据的字符确定由几位表示。如:“中国abc”,则“中国”分别用两个字节表示“中”和“国”,而“abc”则分别由一个字节表示“a”、“b”、“c”。(更详细信息参考其他DBCS/MBCS的文章)

 

对于_T表示的如char和wchar_t,表示用窄字符还是宽字符存储数据。有_UNICODE决定。

L 表示用于存储宽字符的数据,如wchar_t存储而不能用char存储。

 

wchar_t存储的是宽字符版的数据:UNICODE

char存储的是ASCII/DBCS这样的数据

DBCS虽然是双字节数据,但也只能用char存储而不能用wchar_t存储

 

函数MultiByteToWideChar/WideCharToMultiByte是用于转换UNICODE码(如UTF-8)和ASCII/DBCS码的,同样表示的意义也是宽字符和窄字符(多字节字符)间的转换。

 

 

//问题描述:

在用于GBK下的简繁体转换、GBK和Big5的转换时用于存储的应该是多字节的char而不应该是宽字符的wchar_t,使用wchar_t的地方是UNICODE编码的数据。

 

//疑问:

难道在存储GBK、Big5这样的数据时用的都只能是char?使用了wchar_t存储的只能是UNICODE?

是否可能用wchar_t存储Big5下的数据?

 

 

 

//追加:(因自己不能评论自己的东西,所以只能重新编辑文章,将以后自己找的相关整理的资料追加到下面,下面的内容可能为引用他人文章)

1.

引自:http://blog.csdn.net/hairetz/archive/2009/05/18/4198191.aspx

什么是宽字符:对宽字符的支持其实是ANSI C标准的一部分,用以支持多字节表示一个字符。宽字符和Unicode并不完全等同,Unicode只是宽字符的一种编码方式。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值