From: Victor Stinner Date: Sat, 9 Oct 2010 10:34:37 +0000 (+0000) Subject: Document that the 'strict' error handler is used to encode/decode filenames on X-Git-Tag: v3.2a3~10 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=62165d67a25229fee85c98cef9d1feaf109b1339;p=python Document that the 'strict' error handler is used to encode/decode filenames on Windows --- diff --git a/Doc/c-api/unicode.rst b/Doc/c-api/unicode.rst index 8f9e994a1f..dac01a4011 100644 --- a/Doc/c-api/unicode.rst +++ b/Doc/c-api/unicode.rst @@ -412,26 +412,33 @@ used, passing :c:func:`PyUnicode_FSDecoder` as the conversion function: .. c:function:: PyObject* PyUnicode_DecodeFSDefaultAndSize(const char *s, Py_ssize_t size) - Decode a null-terminated string using :c:data:`Py_FileSystemDefaultEncoding` - and the ``"surrogateescape"`` error handler. + Decode a string using :c:data:`Py_FileSystemDefaultEncoding` and the + ``'surrogateescape'`` error handler, or ``'strict'`` on Windows. If :c:data:`Py_FileSystemDefaultEncoding` is not set, fall back to UTF-8. - Use :c:func:`PyUnicode_DecodeFSDefaultAndSize` if you know the string length. + .. versionchanged:: 3.2 + Use ``'strict'`` error handler on Windows. .. c:function:: PyObject* PyUnicode_DecodeFSDefault(const char *s) - Decode a string using :c:data:`Py_FileSystemDefaultEncoding` and - the ``"surrogateescape"`` error handler. + Decode a null-terminated string using :c:data:`Py_FileSystemDefaultEncoding` + and the ``'surrogateescape'`` error handler, or ``'strict'`` on Windows. If :c:data:`Py_FileSystemDefaultEncoding` is not set, fall back to UTF-8. + Use :c:func:`PyUnicode_DecodeFSDefaultAndSize` if you know the string length. + + .. versionchanged:: 3.2 + Use ``'strict'`` error handler on Windows. + .. c:function:: PyObject* PyUnicode_EncodeFSDefault(PyObject *unicode) Encode a Unicode object to :c:data:`Py_FileSystemDefaultEncoding` with the - ``'surrogateescape'`` error handler, and return :class:`bytes`. + ``'surrogateescape'`` error handler, or ``'strict'`` on Windows, and return + :class:`bytes`. If :c:data:`Py_FileSystemDefaultEncoding` is not set, fall back to UTF-8. diff --git a/Doc/library/os.rst b/Doc/library/os.rst index b22c2e9460..92bd606fe0 100644 --- a/Doc/library/os.rst +++ b/Doc/library/os.rst @@ -158,9 +158,7 @@ process and user. .. function:: fsencode(filename) Encode *filename* to the filesystem encoding with ``'surrogateescape'`` - error handler, return :class:`bytes` unchanged. On Windows, use ``'strict'`` - error handler if the filesystem encoding is ``'mbcs'`` (which is the default - encoding). + error handler, or ``'strict'`` on Windows; return :class:`bytes` unchanged. :func:`fsdecode` is the reverse function. @@ -170,9 +168,7 @@ process and user. .. function:: fsdecode(filename) Decode *filename* from the filesystem encoding with ``'surrogateescape'`` - error handler, return :class:`str` unchanged. On Windows, use ``'strict'`` - error handler if the filesystem encoding is ``'mbcs'`` (which is the default - encoding). + error handler, or ``'strict'`` on Windows; return :class:`str` unchanged. :func:`fsencode` is the reverse function.