开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 2652|回复: 0
收起左侧

[技术专题] GBK字符集汉字区位码学习_汉字区位码精确数据

[复制链接]
结帖率:50% (1/2)
发表于 2015-9-6 00:23:33 | 显示全部楼层 |阅读模式   广西壮族自治区南宁市




交流QQ97012791
接单群6820131
转载请注明出处:精易论坛


GB2312字符集_全部区位码


将高字节和低字节
分别加上0XA0[160]即可得到编码



高位 A1[161]-F7[247]=86[10]+1     //这里的[10]是10进制的意思(便于我自己记忆), 以下相同, 不再叙述
低位 A1[161]-FE[254]=93[10]+1



GB2312字符集_汉字区位码(6763个汉字)


高位 B0[176]-F7[247]=71[10]+1
低位 A1[161]-FE[254]=93[10]+1


汉字码位总计计算公式
(高位差+1)*([低位差+1])-5 //-5表示减去5个空位D7FA-D7FE


其中有5个空位是D7FA-D7FE
也就是高位[215]低位[250]-高位[215]低位[254]


其中一级汉字区域为 B0[176]A1[161]-D7[215]F9[249] 共计40*94-5=3755个汉字
其中二级汉字区域为 D8[216]A1[161]-F7[247]FE[254] 共计32*94=3008个汉字


-----------------------------------------------
GBK字符集码位说明

GBK 亦采用双字节表示,
总体编码范围为 8140-FEFE,
首字节在 81-FE  之间,
尾字节在 40-FE  之间,
剔除  xx7F  一条线。


总计  23940  个码位,
共收入  21886  个汉字和图形符号,
其中汉字(包括部首和构件)21003  个,
图形符号  883  个。


GBK字符集_全部区位码


单字节:
00[0]-7F[127]=128[10]


双字节:
高位  81[129]-FE[254]=125[10]+1
低位  {40[64]-7E[126]=62[10]+1} + {80[128]-FE[254]=126[10]+1} == 190[10]
低位的7F一条线全都剔除掉,也就是低位40[64]-FE[254]=190[10]+1 再减去7F[127]这个位 == 190[10]


双字节码位总计计算公式
(高位差+1)*([低位A差+1]+[低位B差+1]) //低位A范围40-7E,低位B范围80-FE


或者
(高位差+1)*([低位差+1]-1)  //-1表示减去7F[127]这个位


GBK编码的单字节与双字节
gbk编码分两部分,一部分是单字节编码,另一部分是双字节编码。
gbk编码中,前128个编码都是单字节编码。单字节编码从00-7F,与ASCII相对应。
在单字节编码之后就是双字节编码。第一个字节范围是81-FE。第二字节的一部分领域在40–7E,其他领域在80–FE。
这样可以通过第一个字节就可以判断是单字节编码还是双字节编码。


双字节编码区又分为5部分
范围 第1字节 第2字节 编码数 字数 内容
GBK/1 A1–A9 A1–FE 846  717 GB2312非汉字符号
GBK/2 B0–F7 A1–FE   6,768 6,763 GB2312汉字
GBK/3 81–A0 40–FE(7F除外) 6,080 6,080 扩充汉字
GBK/4 AA–FE 40–A0(7F除外) 8,160 8,160 扩充汉字
GBK/5 A8–A9 40–A0(7F除外) 192 166 扩充非汉字
用户定义 AA–AF A1–FE 564
用户定义 F8–FE A1–FE 658
用户定义 A1–A7 40–A0(7F除外) 672
合计: 23,940 21,886



GBK字符集_汉字区位码(21003个汉字)


GBK/2高位 B0[176]-F7[247]=71[10]+1
GBK/2低位 A1[161]-FE[254]=93[10]+1


GBK/3高位 81[129]-A0[160]=31[10]+1
GBK/3低位 {40[64]-7E[126]=62[10]+1} + {80[128]-FE[254]=126[10]+1} == 190[10]


GBK/4高位 AA[170]-FE[254]=84[10]+1
GBK/4低位 {40[64]-7E[126]=62[10]+1} + {80[128]-A0[160]=32[10]+1} == 96[10]




GBK/2+/3+/4_汉字区码位总计计算公式


GBK/2_公式  = (高位差+1)*([高位差+1])-5 //-5表示减去5个空位D7FA-D7FE
GBK/3_公式1 = (高位差+1)*([低位A差+1]+[低位B差+1]) //低位A范围40-7E,低位B范围80-FE
GBK/3_公式2 = (高位差+1)*([低位差+1]-1)  //-1表示减去7F[127]这个位
GBK/4_公式1 = (高位差+1)*([低位A差+1]+[低位B差+1]) //低位A范围40-7E,低位B范围80-A0
GBK/4_公式2 = (高位差+1)*([低位差+1]-1)  //-1表示减去7F[127]这个位
汉字总公式  = {[(71+1)*(93+1)]-5} + [(31+1)*190] + [(84+1)*96] == 21003 //汉字总数
验证总公式  = 6763 + 6080 + 8160 == 21003 //汉字总数

交流QQ97012791
接单群6820131
转载请注明出处:精易论坛






您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表