编码字符集标准分类(学术视角)
根据中科院软件所《编码字符集标准及分类研究》论文,编码字符集可分为三类:
| 类型 | 特点 | 例子 |
|---|---|---|
| 独立型 | 编码空间独立,不与其他字符集混合设计 | ASCII, Unicode |
| 结合特定字符集型 | 为配合某个独立字符集(如 ASCII)而设计,避开其编码空间 | BIG5, GBK |
| 符合通用框架型 | 遵循 ISO 2022 框架,使用 94/96 的编码表,可动态切换 | GB 2312, JIS X 0208, CNS 11643 |
编码实现方法分类
| 方法 | 说明 | 例子 |
|---|---|---|
| 单字符集 | 只支持一个字符集(如 Unicode),内部编码固定 | UTF-8, UTF-16, UCS-2 |
| 固定多字符集 | 支持多个字符集,通过编码范围区分,无状态切换 | EUC-CN, EUC-TW |
| 动态多字符集 | 通过转义序列实时切换字符集,有状态 | ISO-2022-CN, 复合文本编码 |
ISO 2022 的核心机制:指派 (Designation) 和 调用 (Invocation)。通过转义序列将某个字符集装入 G0/G1/G2/G3 区域,再通过控制字符将其映射到 GL/GR 编码空间。
ESC 2/4 2/9 4/1 → 将 GB2312-80 指派到 G1
SO (Shift Out) → 调用 G1 到 GL 区域
SO (Shift Out) → 调用 G1 到 GL 区域