LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 181|回复: 0

语言区域编码格式

[复制链接]
发表于 2024-1-29 00:37:29 | 显示全部楼层 |阅读模式


当前语言区域编码格式可被用来解码来自操作系统的文本。

PyObject *PyUnicode_DecodeLocaleAndSize(const char *str, Py_ssize_t length, const char *errors)
返回值:新的引用。 属于 稳定 ABI 自 3.7 版开始.
解码字符串在 Android 和 VxWorks 上使用 UTF-8,在其他平台上则使用当前语言区域编码格式。 支持的错误处理句柄有 "strict" 和 "surrogateescape" (PEP 383)。 如果 errors 为 NULL 则解码器将使用 "strict" 错误处理句柄。 str 必须以一个空字符结束但不可包含嵌入的空字符。

使用 PyUnicode_DecodeFSDefaultAndSize() 以 filesystem encoding and error handler 来解码字符串。

此函数将忽略 Python UTF-8 模式。

参见 The Py_DecodeLocale() 函数。
在 3.3 版本加入.

在 3.7 版本发生变更: 此函数现在也会为 surrogateescape 错误处理句柄使用当前语言区域编码格式,但在 Android 上例外。 在之前版本中,Py_DecodeLocale() 将被用于 surrogateescape,而当前语言区域编码格式将被用于 strict。

PyObject *PyUnicode_DecodeLocale(const char *str, const char *errors)
返回值:新的引用。 属于 稳定 ABI 自 3.7 版开始.
类似于 PyUnicode_DecodeLocaleAndSize(),但会使用 strlen() 来计算字符串长度。

在 3.3 版本加入.

PyObject *PyUnicode_EncodeLocale(PyObject *unicode, const char *errors)
返回值:新的引用。 属于 稳定 ABI 自 3.7 版开始.
编码 Unicode 对象在 Android 和 VxWorks 上使用 UTF-8,在其他平台上使用当前语言区域编码格式。 支持的错误处理句柄有 "strict" 和 "surrogateescape" (PEP 383)。 如果 errors 为 NULL 则编码器将使用 "strict" 错误处理句柄。 返回一个 bytes 对象。 unicode 不可包含嵌入的空字符。

使用 PyUnicode_EncodeFSDefault() 将字符串编码为 filesystem encoding and error handler。

此函数将忽略 Python UTF-8 模式。

参见 Py_EncodeLocale() 函数。
在 3.3 版本加入.

在 3.7 版本发生变更: 此函数现在也会为 surrogateescape 错误处理句柄使用当前语言区域编码格式,但在 Android 上例外。 在之前版本中,Py_EncodeLocale() 将被用于 surrogateescape,而当前语言区域编码格式将被用于 strict。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表