PEP 756:添加 PyUnicode_Export() 和 PyUnicode_Import() C 函数

PEP 756:添加 PyUnicode_Export() 和 PyUnicode_Import() C 函数

💡 原文英文,约200词,阅读约需1分钟。
📝

内容提要

Python 3.3 引入了三种字符串格式:UCS-1、UCS-2 和 UCS-4。可以使用 PyUnicode_KIND() 函数确定字符串使用的格式。要访问数据,应使用相应的函数。C 扩展应为每种格式提供代码路径以优化性能。

🎯

关键要点

  • Python 3.3 引入了三种字符串格式:UCS-1、UCS-2 和 UCS-4。

  • PyUnicode_1BYTE_KIND 表示 Unicode 范围 [U+0000; U+00ff],使用 1 字节/字符。

  • PyUnicode_2BYTE_KIND 表示 Unicode 范围 [U+0000; U+ffff],使用 2 字节/字符。

  • PyUnicode_4BYTE_KIND 表示 Unicode 范围 [U+0000; U+10ffff],使用 4 字节/字符。

  • Python str 对象必须始终使用最紧凑的格式,例如仅包含 ASCII 字符的字符串必须使用 UCS-1 格式。

  • 可以使用 PyUnicode_KIND() 函数确定字符串使用的格式。

  • 访问数据时应使用相应的函数:PyUnicode_1BYTE_DATA()、PyUnicode_2BYTE_DATA() 和 PyUnicode_4BYTE_DATA()。

  • 为了获得最佳性能,C 扩展应为这三种字符串原生格式提供三条代码路径。

➡️

继续阅读