双字节字符c语言,2.1.4 双字节字符集

2.1.4  双字节字符集

迄今为止,我们一直在看256个字符的字符集。但是,像中文、日文和韩文的象形文字约有21 000个字符。怎样来融合这些语言而同时保持与ASCII有着某种程度的兼容性呢?

答案(如果这样说是对的话)在于双字节字符集( DBCS )。DBCS一开始就是256个代码,就像ASCII一样。和其他规范的代码页一样,前128个代码是ASCII。但是,较高的128个代码中有些还跟随有第二个字节。这两个字节(称为前导字节和尾随字节)在一起代表一个单独的字符,常常是一个复杂的象形文字。

虽然中文汉字、日文和韩文共享许多相同的象形文字,但显然这些语言是不同的,往往同样的象形文字在三种语言中代表着不同的东西。Windows支持四种不同的双字节字符集:代码页932(日文)、936(简体中文)、949(韩文)以及950(繁体中文)。DBCS只有在为这些国家制造的Windows版本上才被支持。

双字节字符集的问题不在于字符是由两个字节组成的。问题是有些字符(特别是ASCII字符)是由一个字节组成的。这就导致了奇怪的编程问题。例如,一个字符串的字符长度不能因字节数量而决定。字符串的长度要解析后才能判断,每个字节都要被检查是不是双字节的前导字节。如果你有一个指针指向一个DBCS字符串的中间,那前一个字符的地址是什么呢?常规做法是回到字符串的开始,一直解析到指针的位置!

【责任编辑:云霞 TEL:(010)68476606】

点赞 0

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值