|
交流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
转载请注明出处:精易论坛
|
|