C/C++ char与wchar_t编码区别

一、GB2312(GBK 向下与 GB 2312 完全兼容,向上支持 ISO 10646 国际标准,在前者向后者过渡过程中起到的承上启下的作用)兼容ASCII编码

gb2312码由两个字节组成,每个字节都大于80H,ASCII码都小于80H,这样肯定没冲突
下面是摘抄部分:
(1)区位码先转换成十六进制数表示
(2)(区位码的十六进制表示)+2020H=国标码;
(3)国标码+8080H=机内码

举例:以汉字“大”为例,“大”字的区内码为2083

解:1、区号为20,位号为83

2、将区位号2083转换为十六进制表示为1453H

3、1453H+2020H=3473H,得到国标码3473H

4、3473H+8080H=B4F3H,得到机内码为B4F3H

这样就不会冲突了

二、char与wchar_t编码区别

C++中宽字符类型(wchar_t)的编码是Unicode,而char类型是GB2312编码。

最后补充一下,unicode是兼容ASCII的,ASCII所能表示的字符,用unicode编码可以得出一样的值。但不兼容GBK(也就是中文编码),如果混用两种方式编码的字符串,需要开发者手动去转换

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值