c语⾔⽀持中⽂编码,C语⾔基础之中⽂编码格式GB2312(4)GB2312历史回顾
GB2312编码范围:A1A1-FEFE,其中汉字编码范围:B0A1-F7FE。
GB2312编码是第⼀个汉字编码国家标准,由中国国家标准总局1980年发布,1981年5⽉1⽇开始使⽤。GB2312编码共收录汉字6763个,其中⼀级汉字3755个,⼆级汉字3008个。同时,GB2312编码收录了包括拉丁字母、希腊字母、⽇⽂平假名及⽚假名字母、俄语西⾥尔字母在内的682个全⾓字符。
分区表⽰
GB2312编码对所收录字符进⾏了“分区”处理,共94个区,每区含有94个位,共8836个码位。这种表⽰⽅式也称为区位码。
01-09区收录除汉字外的682个字符。
10-15区为空⽩区,没有使⽤。
16-55区收录3755个⼀级汉字,按拼⾳排序。
56-87区收录3008个⼆级汉字,按部⾸/笔画排序。
88-94区为空⽩区,没有使⽤。
举例来说,“啊”字是GB2312编码中的第⼀个汉字,它位于16区的01位,所以它的区位码就是1601。
双字节编码
GB2312规定对收录的每个字符采⽤两个字节表⽰,第⼀个字节为“⾼字节”,对应94个区;第⼆个字节为“低字节”,对应94个位。所以它的区位码范围是:0101-9494。区号和位号分别加上0xA0就是GB2312编码。例如最后⼀个码位是9494,区号和位号分别转换成⼗六进制是5E5E,0x5E+0xA0=0xFE,所以该码位的GB2312编码是FEFE。
GB2312编码范围:A1A1-FEFE,其中汉字的编码范围为B0A1-F7FE,第⼀字节0xB0-0xF7(对应区号:16-87),第⼆个字节
0xA1-0xFE(对应位号:01-94)。
若要查询具体字符的编码请前往:汉字字符集编码查询。
GB2312编码格式采⽤的是区位码格式:GB2312为双字节编码,其中第⼀个字节为⾼字节,对应1-94个区,第⼆个字节为低字节,对应1-94个位。我们知道⼀个字节对于8位,8位的数可以表⽰的范围0-2
56,但是这⾥采⽤的范围是1-94,1-94是⼀个规定或者说是规范。当区号和位号分别加上0xA0就是GB2312编码,这也是⼀个规定。c语言中文网汇编语言
我们再来捋⼀下区号和位号的组合体:其范围0101 - 9494。
接下来再加上⼀个0xA0⼗六进制数变成GB2312编码:⾼字节的最⼩数1转换成GB2312码:1(10) + 0xA0 = 0x01 + 0xA0 = 0xA1,⾼字节的最⼤数94转GB2312码:94(10) + 0xA0 = 0x5E + 0xA0 = 0xFE
得GB2312编码范围:A1A1 - FEFE
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论