IBM 代码页 936
代码页936 | |
---|---|
术语名称 | 代码页936 |
英语名称 | code page 936 |
别名 | CCSID 936, IBM-936, Shift GB |
IBM 代码页 936 指的是 IBM 代码页中编号为 936 的代码页。不是微软代码页 936 。代码页 936 是对字符集 GB 2312 的一种扩展和字符编码方案。
编码方案
代码页 936 大量参考了 Shift JIS (IBM 代码页 932)的结构,单字节字符集代码页 903 和双字节字符集代码页 928 的合并。单字节部分代码页 903 是类似 ISO 646-JP 的编码, 0x5C \
被替换为 ¥
, 0xFE ~
被替换为 ‾
(注意,尽管是中文编码,不是 ISO 646-CN ,CN 版本的 ¥
在 0x24 $
上)[1] 。
IBM 代码页 936 的汉字部分(或者说 928)格式参考了 Shift JIS 中的偏移,因此也被形容为 Shift GB 或 Shift GB 2312 。在 936 中, 汉字使用双字节编码:高字节为 0x80-AC (以及用户定义区的 0xF0-0xFA),低字节为 0x40-7E,0x81-FC 。可以发现,其中低字节的范围为 0x40-FF 中去掉必须表示擦除字符的 0x7F DEL
后,填入两个 94 的结果。可以将其分为 0x40-7E,0x81-9E 和 0x9F-FC 的各 94 的两段。
在此基础上,可以认为 GB2312 被如下编码[2][3]:
- 01-09 区,特殊符号:首字节为 0x80 开始,到首字节为 0x85 的前半段。
- 10-15 区,未分配:首字节为 0x85 的后半段,到首字节为 0x88 的前半段。
- 16-55 区,一级汉字:首字节为 0x88 的后半段,到首字节为 0x9C 的前半段。
- 56-87 区,二级汉字:首字节为 0x9C 的前半段,到首字节为 0xAC 的前半段。
- 88-94 区,未分配:理论上,首字节为 0xAC 的后半段,到首字节为 0xAE 结束。(实际上 0xAD-0xAF 没有明确信息,算是默认未分配)
此外, 0xF0-F9 用作用户定义字符, 0xFA 留作用户定义非汉字字符。
常见字符集与字符编码 | |||
---|---|---|---|
原始编码 | 电报码( Morse 电码) | BCD 码、 IBM 卡编码 | - |
早期二进制码位分配的编码 | - | BCDIC、EBCDIC | ASCII (ISO 646-US 、 ISO 646-IRV) |
地区字符编码 | - | - | ISO 8859 : ISO 8859-1 、 ISO 8859-2 、…… |
- | - | EUC 类编码,含第一个国标字符集 GB 2312 , 其编码 EUC-CN(IBM 代码页 936)也称 GB 2312 | |
多地区字符编码通过切换串兼容 | - | - | 通用框架: ISO 4873、ISO 2022 ,含 ISO-2022-CN ISO-2022-CN 的简化: HZ 编码 |
无需切换串的自同步编码 | - | UTF-EDCBIC | 字符集 Unicode / ISO 10646 ,有常见编码 UTF-8、 UTF-16 、 UTF-32 及废弃编码 UTF-1 、 UTF-7 |
地区字符编码扩充 | - | - | 国标系列后续:GBK(微软代码页 936)、 GB 18030(微软代码页 54936) |