• [日常]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

    赞赏作者

    微信交流

  • 相关阅读:
    C# 关于调用微信接口的代码
    Winform实现微信功能
    Delphi 7 在IDE菜单中增加UPX工具
    Delphi7中Unicode,ANSI,UTF编码问题
    本机时间不正确带来的问题
    Delphi最简化异步选择TCP服务器
    C# Winform小程序:局域网设置NTP服务器、实现时间同步
    开源Inno Setup官网下载、安装、打包教程(官网安装向导中文语言包)
    css 雪碧图的制作
    原生js 实现的瀑布流
  • 原文地址:https://www.cnblogs.com/taoshihan/p/14504368.html
Copyright © 2020-2023  润新知