python - 为什么 Python Unicode 内部格式按照 PEP 100 中的描述实现?

标签 python unicode encoding utf-16 ucs2

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

PEP 100 声明内部格式 Python Unicode 包含 UTF-16 编码,但将值定位为 UCS-2(或使用标志 --enable-unicode=ucs4 编译时的 UCS-4) >).

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

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

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

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

最佳答案

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

关于python - 为什么 Python Unicode 内部格式按照 PEP 100 中的描述实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8023198/

相关文章:

python - 使用用户输入打破嵌套循环

python - 有没有办法访问包含基类的 __dict__ (或类似的东西)?

unicode - 自动检测字符编码的 findstr 或 grep (UTF-16)

sql - MySql中utf8_general_ci和utf8_unicode_ci有什么区别?

android - 将原始 PCM 位保存到压缩音频 AAC/AMR 文件中

python - 在 groupby 中使用 sort_values 和 inplace=True 时到底出了什么问题?

python - 在 Nose 中伪造 time.time() 的时间戳

不同语言的Java String错序拼接

unicode - 在任何时候,以 UTF-8 编码的文本永远不会为我们提供超过以 UTF-16 编码的相同文本的 +50% 的文件大小。真假?

c# - 生成随机字符串