当前语言区域编码格式可被用来解码来自操作系统的文本。
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。 |