4

http://www.python.org/dev/peps/pep-0100/

PEP 100 声明内部格式 Python Unicode 保存 UTF-16 编码,但将值寻址为 UCS-2(或使用 flag 编译时的 UCS-4 --enable-unicode=ucs4)。

为什么不选择 UTF-16(可变长度格式)而不是 UCS-2(固定长度)?

尽管这两种编码基本相同,但当 PEP-100 发布时(2000 年 3 月),UTF-16 已经有 4 年的历史了。Python Unicode 是否旨在解决向后兼容性问题?

我真的很好奇为什么 Python 的内部格式是使用这种(看似)混合方法在内部存储编码数据来实现的?

提出我的问题的更好方法可能是:是否有人引用官方文件中的引用或链接,具体说明为什么 PEP 100 选择将 UTF-16 视为 UCS-2 而不是使用 UTF-16?

4

1 回答 1

1

进一步阅读:“UCS-2 和 UTF-16 对于所有当前定义的 Unicode 字符点都是相同的”……这在 2000 年编写 PEP 时是正确的。最初的实现仅涵盖 BMP(前 64K 代码点)。

于 2011-11-05T21:17:01.970 回答