梳理下中文编码的历史

最早,计算机使用7位编码来表示英语字符,而其他使用拉丁字母、希腊字母、西里尔字母、希伯来字母等的语文,由于只使用数十个字母,传统上均使用8位编码的ISO/IEC 8859标准来表示。

但由于汉语、日语及朝鲜语字数众多,无法用单一个8位字符来表达,故需要多于一个字节来代表一个字。于是,ISO 2022就设计出来让汉语、日语及朝鲜语可以使用数个7位编码的字符来示(当时通信领域的协议采用了第8位做校验纠错用途)。

 

GB 2312-80 即 GB2312, 遵循 ISO 2022 由中国国家标准总局发布,1981年5月1日实施,收录6763个汉字。

 

EUC(Extended Unix Code)使用8位编码来表示字符的方法,于1991年标准化,这是针对 Unix 系统,由一些 Unix 公司所开发,遵循于 ISO 2022,而 EUC-CN 就是 GB2312 的编码实现,可以说通过 EUC 把 GB2312 给标准化了。

 

早期的 window 遵循 EUC 编码规范,将 EUC-CN 规定为 CP936(Code Page),这时可以认为 EUC-CN = CP936 = GB2312

 

1993年,Unicode 1.1 版本推出,收录中国大陆、台湾、日本及韩国通用字符集的汉字,总共有20,902个。

同年,我国制定等同于 Unicode 1.1 的 GB 13000.1-93,这仅是标准

 

在我国颁布 GB 13000.1-93 后,微软正在做 window95,鉴于我国制作了 GB 13000.1-93 的标准,于是将 CP936 中未使用的编码空间,用 GB 13000.1-93 中不包含在 GB2312 的字符做扩展,这个时候是不是叫GBK有待商榷,肯定是CP936的扩展​,由于微软编码页其内在的编码不同于国标的编码, 这时 CP936=GBK≠GB 13000.1-93, GBK兼容GB2312

 

为了配合 UNICODE 的实施,全国信息技术标准化技术委员会于1995年12月1日制订了《汉字内码扩展规范》(GBK), 这时 CP936≠GBK(但仍然可以说CP936指代GBK),GBK 定义之字符较 CP936 多出95字,但是 CP936 未做修改。

 

2005年 GB 18030-2005 发布,考虑到GBK使用的广泛性(感谢盗版),GB18030完全兼容GBK,不兼容 GB 13000.1-93

 

参考---

再谈字符编码。关于EUC,EUC-CN和codepage936 - http://hi.baidu.com/xyk34/item/7bdca45fa33eacc09e2667f9

维基百科 - http://zh.wikipedia.org/wiki/GBK

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值