刨根究底字符编码之六——简体汉字编码中区位码、国标码、机内码、外码、字形码的区别及关系
作者&投稿:兀有康 (若有异议请与网页底部的电邮联系)
~
汉字编码之旅:六种编码方式的解密
在数字化的世界中,汉字的编码犹如语言的密码,GB系列编码(GB2312、GBK、GB18030)正是这些密码的编织者。每个字符,无论是常用还是罕见,都由区位码的94×94个格子构成,如“万”字区位码为45 82,它在编码领域中扮演着关键角色。
- 区位码:汉字的基石,由高位字节45(对应77)和低位字节82(对应114)组成,这是字符编码的最初形式,但为了避开ASCII字符冲突,区位码需要加上32,形成国标码。
- 国标码(交换码):国标码是区位码的升级版,通过将高位字节加80H(ASCII控制字符)和低位字节加80H(全角字符)来区分,以确保与ASCII字符的兼容。
- 机内码(内码):内码是国标码的延伸,每个字节的最高位被设为1(即+128H),这样做的目的是完全避免与ASCII字符的冲突,使得汉字编码与ASCII字符空间互不干扰。
GB2312的设计巧妙地将ASCII字符的可打印部分(33~126)转换为全角,同时保留了控制字符。区位码的调整策略,确保了与ASCII世界的无缝对接。
接下来,我们转向输入层面:外码(输入码),如五笔、拼音输入法,它们是为用户便捷输入汉字而设计的符号编码,可能包含重码,需要额外的选择机制来确保准确性。
而在输出阶段,字形码(点阵代码)登场,以16×16或24×24点阵等形式展现汉字的图形,每个字符需要特定的存储空间计算,如字节数=点阵行数×(点阵列数/8)。
总结:
- 内码:编码的核心,确保汉字的统一性;
- 外码/输入码:输入友好,满足日常使用需求;
- 字形码/输出码:用于屏幕上清晰呈现,是视觉呈现的关键;
- ASCII码则无需输入码,与现代汉字编码体系形成对比。
通过GB系列编码,我们了解了区位码、国标码和机内码之间的转换逻辑。继续我们的编码探索之旅,下一章我们将深入探讨ANSI编码和代码页,敬请期待!
- 上一篇:《字符编码五:简体汉字编码的全貌》
- 下一篇:《字符编码七:ANSI编码与代码页的深入解析》