浅谈unicode和gb2312之间的转换

浅谈unicode和gb2312之间的转换

     我先说,这两个是没有线性的转换关系,不能通过程序加加减减弄出来,只能硬性的对应,今天看了一天,终于知道了,哎。。。 

1. Unicode概念

    Unicode是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案。Unicode用数字0-0x10FFFF来映射这些字符,最多可以容纳1114112个字符,或者说有1114112个码位。码位就是可以分配给字符的数字。UTF-8、UTF-16、UTF-32都是将数字转换到程序数据的编码方案。

 

2. gb2312编码概念

    GB 2312GB 2312-80 是一个简体中文字符集中国国家标准,全称为《信息交换用汉字编码字符集·基本集》,又稱為GB0,由中国国家标准总局发布,1981年5月1日实施。GB2312编码通行于中国大陆;新加坡等地也采用此编码。中国大陆几乎所有的中文系统和国际化的软件都支持GB 2312。

《GB2312-80》对 7445 个图形字符作了二进制数编码,这些图形字符是:

 6763 个汉字,字体为简化字,分成两级。第一级汉字 3755 个,按拼音排序,约占近代文献汉字累计使用频度 99.9% 左右;二级汉字 3008 个,按部首、笔画排序。一、二级汉字约占累计使用频度 99.99% 以上。

 1)202 个一般符号。其中包括 1.~20.,(1)~(20),①~⑩,(-)~(+) 等。

 2)22 个数字。其中 0~9 共 10 个,Ⅰ~Ⅻ 共 12 个。

 3)52 个拉丁字母。其中大写字母 A~Z 26 个,小写字母 a~z 26 个。

 4)169 个日文假名。其中平假名 83 个,片假名 86 个。

 5)48 个希腊字母。其中大写字母 Α~Ω24 个,小写字母 α~ω 24 个。

 6)66 个俄文字母。其中大写字母 А~Я33 个,小写字母 а~я 33 个。

 7)26 个汉语拼音符号,包括带声调符号和其它符号的字母。

 8)37 个汉语注音字母,ㄅ~ㄥ。

 

   gb2312编码使用的是区位码寻字方式,1-9区存放中文符号,16-55区存放一级汉字,56-87区存放二级汉字,如第1个汉字位于16区的第1位,为:'啊',所以1601,即0x1001就代表了该'啊'的区位码值.
区位码变换为机器内码需要分别将区码和位码加0xA0,以'啊'的机器内码就是,0xB0A1。

 

3. 实际上,这两种编码格式没有1毛钱的关系,unicode对汉字进行了重新编码,这和gb2312编码的方式和顺序完全不同,unicode对汉字编码从0x4E00开始,到0x9FA5为止,所以unicode和gb2312编码的转换,就需要一个转换对照表,实现快速转换。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值