diff --git a/Doc/c-api/unicode.rst b/Doc/c-api/unicode.rst --- a/Doc/c-api/unicode.rst +++ b/Doc/c-api/unicode.rst @@ -730,48 +730,50 @@ 3.x, but need to be aware that their use Locale Encoding """"""""""""""" The current locale encoding can be used to decode text from the operating system. -.. c:function:: PyObject* PyUnicode_DecodeLocaleAndSize(const char *str, Py_ssize_t len, int surrogateescape) - - Decode a string from the current locale encoding. The decoder is strict if - *surrogateescape* is equal to zero, otherwise it uses the - ``'surrogateescape'`` error handler (:pep:`383`) to escape undecodable - bytes. If a byte sequence can be decoded as a surrogate character and - *surrogateescape* is not equal to zero, the byte sequence is escaped using - the ``'surrogateescape'`` error handler instead of being decoded. *str* - must end with a null character but cannot contain embedded null characters. +.. c:function:: PyObject* PyUnicode_DecodeLocaleAndSize(const char *str, \ + Py_ssize_t len, \ + const char *errors) + + Decode a string from the current locale encoding. The supported error + handlers are ``strict`` and ``surrogateescape`` (:pep:`383`). The decoder + uses ``strict`` error handler if *errors* is ``NULL``. If a byte sequence + can be decoded as a surrogate character and *errors* is not ``strict``, + then the byte sequence is escaped using the ``surrogateescape`` error handler + instead of being decoded. *str* must end with a null character but cannot + contain embedded null characters. .. seealso:: Use :c:func:`PyUnicode_DecodeFSDefaultAndSize` to decode a string from :c:data:`Py_FileSystemDefaultEncoding` (the locale encoding read at Python startup). .. versionadded:: 3.3 -.. c:function:: PyObject* PyUnicode_DecodeLocale(const char *str, int surrogateescape) +.. c:function:: PyObject* PyUnicode_DecodeLocale(const char *str, const char *errors) Similar to :c:func:`PyUnicode_DecodeLocaleAndSize`, but compute the string length using :c:func:`strlen`. .. versionadded:: 3.3 -.. c:function:: PyObject* PyUnicode_EncodeLocale(PyObject *unicode, int surrogateescape) - - Encode a Unicode object to the current locale encoding. The encoder is - strict if *surrogateescape* is equal to zero, otherwise it uses the - ``'surrogateescape'`` error handler (:pep:`383`). Return a :class:`bytes` +.. c:function:: PyObject* PyUnicode_EncodeLocale(PyObject *unicode, const char *errors) + + Encode a Unicode object to the current locale encoding. The supported error + handlers are ``strict`` and ``surrogateescape`` (:pep:`383`). The encoder + uses ``strict`` error handler if *errors* is ``NULL``. Return a :class:`bytes` object. *str* cannot contain embedded null characters. .. seealso:: Use :c:func:`PyUnicode_EncodeFSDefault` to encode a string to :c:data:`Py_FileSystemDefaultEncoding` (the locale encoding read at Python startup).