汉字编码字符集 GB2312 GBK GB18030 您所在的位置:网站首页 汉字是字节还是字符 汉字编码字符集 GB2312 GBK GB18030

汉字编码字符集 GB2312 GBK GB18030

2023-04-17 11:58| 来源: 网络整理| 查看: 265

本文共 2444 字,大约阅读时间需要 8 分钟。

GB 2312

简介

GB_2312 字符集包含了 6763个的 简体汉字,和682 个标准中文符号。

 

在这个标准中,每个汉字用2个字节来表示,每个字节的ascii码为 161-254 (16 进制A1 - FE),第一个字节 对应于 区码的1-94 区,第二个字节 对应于位码的1-94 位。

161-254 其实很好记忆,大家知道英文字符中,可打印的字符范围为33-126。将 这对 数加上 128(或者说最高位置1),就得到汉字使用的字符的范围。  

分区表示

  GB 2312中对所收汉字进行了“分区”处理,每区含有94个汉字/符号。这种表示方式也称为区位码。   01-09区为特殊符号。   16-55区为一级汉字,按拼音排序。   56-87区为二级汉字,按部首/笔画排序。   10-15区及88-94区则未有编码。   举例来说,“啊”字是GB2312之中的第一个汉字,它的区位码就是1601。   字节结构   在使用GB2312的程序中,通常采用EUC储存方法,以便兼容于ASCII。浏览器编码表上的“GB2312”,通常都是指“EUC-CN”表示法。 每个汉字及符号以两个字节来表示。第一个字节称为“高位字节”(也称“区字节)”,第二个字节称为“低位字节”(也称“位字节”)。 “高位字节”使用了0xA1-0xF7(把01-87区的区号加上0xA0),“低位字节”使用了0xA1-0xFE(把01-94加上 0xA0)。 由于一级汉字从16区起始,汉字区的“高位字节”的范围是0xB0-0xF7,“低位字节”的范围是0xA1-0xFE,占用的码位是 72*94=6768。其中有5个空位是D7FA-D7FE。 例如“啊”字在大多数程序中,会以两个字节,0xB0(第一个字节) 0xA1(第二个字节)储存。区位码=区字节+位字节(与区位码对比:0xB0=0xA0+16,0xA1=0xA0+1)。

 

GBK

简介

  GBK是对GB2312-80的扩展,GBK向下完全兼容GB2312-80编码。

编码方式

 

GB 1803

简介

 

字节结构

单字节,其值从0到0x7F。 双字节,第一个字节的值从0x81到0xFE,第二个字节的值从0x40到0xFE(不包括0x7F)。 四字节,第一个字节的值从0x81到0xFE,第二个字节的值从0x30到0x39,第三个字节从0x81到0xFE,第四个字节从0x30到0x39。

GB18030的规范是汉字第一个字节在0x81-0xFE之间,第二个字节位于区间0x40-0x7E以及0x80-0xFE。每个字节转化为整数大于128。

 ================================================================================================

总体结构

  标准采用单字节、双字节和四字节三种方式对字符编码。单字节部分采用GB/T 11383的编码结构与规则,使用0×00至0×7F码位(对应于ASCII码的相应码位)。双字节部分,首字节码位从0×81至0×FE,尾字节码位分别是0×40至0×7E和0×80至0×FE。四字节部分采用GB/T 11383未采用的0×30到0×39作为对双字节编码扩充的后缀,这样扩充的四字节编码,其范围为0×81308130到0×FE39FE39。其中第一、三个字节编码码位均为0×81至0×FE,第二、四个字节编码码位均为0×30至0×39。

GB18030-2000汉字 如下表所示,GB18030-2000收录了27533个汉字: 类别 码位范围 码位数 字符数 字符类型 双字节部分 第一字节 0xB0-0xF7 第二字节 0xA1-0xFE 6768 6763 汉字 第一字节0x81-0xA0 第二字节0x40-0xFE 6080 6080 汉字 第一字节0xAA-0xFE 第二字节0x40-0xA0 8160 8160 汉字 四字节部分 第一字节0x81-0x82 第二字节0x30-0x39 第三字节0x81-0xFE 第四字节0x30-0x39 6530 6530 CJK统一汉字扩充A                       27533就是6763+6080+8160+6530。   双字节部分的6763+6080+8160=21003个汉字就是GBK的21003个汉字。   在Unicode中,CJK统一汉字扩充A有6582个汉字,为什么这里只有6530个汉字?   这是因为在GBK时代,双字节部分已经收录过CJK统一汉字扩充A的52个汉字,所以还余6530个汉字。   GB18030-2005汉字 如下表所示,GB18030-2005收录了70244个汉字: 类别 码位范围 码位数 字符数 字符类型 双字节部分 第一字节 0xB0-0xF7 第二字节 0xA1-0xFE 6768 6763 汉字 第一字节0x81-0xA0 第二字节0x40-0xFE 6080 6080 汉字 第一字节0xAA-0xFE 第二字节0x40-0xA0 8160 8160 汉字 四字节部分 第一字节0x81-0x82 第二字节0x30-0x39 第三字节0x81-0xFE 第四字节0x30-0x39 6530 6530 CJK统一汉字扩充A 第一字节0x95-0x98 第二字节0x30-0x39 第三字节0x81-0xFE 第四字节0x30-0x39 42711 42711 CJK统一汉字扩充B                           70244就是6763+6080+8160+6530+42711。  

参考:

  国家标准代码:http://zh.wikipedia.org/wiki/国家标准代码

  GBK:http://zh.wikipedia.org/wiki/GBK

  GB 18030:http://zh.wikipedia.org/wiki/GB18030

转载地址:https://www.cnblogs.com/Dyx5/p/3661511.html 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有