zoukankan      html  css  js  c++  java
  • [日常]GB2312 GBK GB18030的区别和演进过程

    因为经常被乱码问题搞乱 , 中文的编码GB系列就有好几个 , 看看这三的区别 , 转自知乎

    1 GB2312-80

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

    GB 2312 标准共收录 6763 个汉字,其中一级汉字 3755 个,二级汉字 3008 个;同时收录了包括拉丁字母、希腊字母、日文平假名及片假名字母、俄语西里尔字母在内的 682 个字符。

    • GB 2312 的出现,基本满足了汉字的计算机处理需要,它所收录的汉字已经覆盖中国大陆99.75% 的使用频率。
    • 对于人名、古汉语等方面出现的罕用字,GB 2312 不能处理,这导致了后来 GBK 及 GB 18030 汉字字符集的出现。

     

    GB 2312 对任意一个图形字符都采用两个字节表示,并对所收汉字进行了“分区”处理,每区含有 94 个汉字/符号,分别对应第一字节和第二字节。这种表示方式也称为区位码。

    • 01-09 区为特殊符号。
    • 16-55 区为一级汉字,按拼音排序。
    • 56-87 区为二级汉字,按部首/笔画排序。

    10-15 区及 88-94 区则未有编码。
    GB 2312 的编码范围为 2121H-777EH,与 ASCII 有重叠,通行方法是将 GB 码两个字节的最高位置 1 以示区别。

    2 GBK

    GBK 汉字内码扩展规范K 为汉语拼音 Kuo Zhan(扩展)中“扩”字的声母。英文全称 Chinese Internal Code Specification。

    GBK 共收入 21886 个汉字和图形符号,包括:

    • GB 2312 中的全部汉字、非汉字符号。
    • BIG5 中的全部汉字。
    • 与 ISO 10646 相应的国家标准 GB 13000 中的其它 CJK 汉字,以上合计 20902 个汉字。
    • 其它汉字、部首、符号,共计 984 个。

    GBK 向下与 GB 2312 完全兼容,向上支持 ISO 10646 国际标准,在前者向后者过渡过程中起到的承上启下的作用。

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

    • 汉字区 包括

    GBK/2:0XBOA1-F7FE, 收录 GB 2312 汉字 6763 个,按原序排列;

    GBK/3:0X8140-AOFE,收录 CJK 汉字 6080 个;

    GBK/4:0XAA40-FEAO,收录 CJK 汉字和增补的汉字 8160 个。

    • 图形符号区 包括

    GBK/1:0XA1A1-A9FE,除 GB 2312 的符号外,还增补了其它符号

    GBK/5:0XA840-A9AO,扩除非汉字区。

    • 用户自定义区

    GBK 区域中的空白区,用户可以自己定义字符。

    3 GB18030

    GB 18030,全称:国家标准 GB 18030-2005《信息技术中文编码字符集》,是中华人民共和国现时最新的内码字集,是 GB 18030-2000《信息技术信息交换用汉字编码字符集基本集的扩充》的修订版。

    GB 18030 与 GB 2312-1980 和 GBK 兼容,共收录汉字70244个。

    • 与 UTF-8 相同,采用多字节编码,每个字可以由 1 个、2 个或 4 个字节组成。
    • 编码空间庞大,最多可定义 161 万个字符。
    • 支持中国国内少数民族的文字,不需要动用造字区。
    • 汉字收录范围包含繁体汉字以及日韩汉字

    GB 18030 编码是一二四字节变长编码。

    • 单字节,其值从 0 到 0x7F,与 ASCII 编码兼容。
    • 双字节,第一个字节的值从 0x81 到 0xFE,第二个字节的值从 0x40 到 0xFE(不包括0x7F),与 GBK 标准兼容。
    • 四字节,第一个字节的值从 0x81 到 0xFE,第二个字节的值从 0x30 到 0x39,第三个字节从0x81 到 0xFE,第四个字节从 0x30 到 0x39。

    开源作品

    GO-FLY,一套可私有化部署的免费开源客服系统,安装过程不超过五分钟(超过你打我 !),基于Golang开发,二进制文件可直接使用无需搭开发环境,下载zip解压即可,仅依赖MySQL数据库,是一个开箱即用的网页在线客服系统,致力于帮助广大开发者/中小站长快速整合私有客服功能
    github地址:go-fly
    官网地址:https://gofly.sopans.com

    赞赏作者

    微信交流

  • 相关阅读:
    Leetcode 349. Intersection of Two Arrays
    hdu 1016 Prime Ring Problem
    map 树木品种
    油田合并
    函数学习
    Leetcode 103. Binary Tree Zigzag Level Order Traversal
    Leetcode 102. Binary Tree Level Order Traversal
    Leetcode 101. Symmetric Tree
    poj 2524 Ubiquitous Religions(宗教信仰)
    pat 1009. 说反话 (20)
  • 原文地址:https://www.cnblogs.com/taoshihan/p/14504368.html
Copyright © 2011-2022 走看看