diff options
author | Victor Stinner <victor.stinner@gmail.com> | 2018-01-22 18:07:32 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-01-22 18:07:32 (GMT) |
commit | 9089a265918754d95e105a7c4c409ac9352c87bb (patch) | |
tree | 1f171191126bbe95f5e36de0a128b29bd7ed66b4 /Doc | |
parent | 13ff24582c99dfb439b1af7295b401415e7eb05b (diff) | |
download | cpython-9089a265918754d95e105a7c4c409ac9352c87bb.zip cpython-9089a265918754d95e105a7c4c409ac9352c87bb.tar.gz cpython-9089a265918754d95e105a7c4c409ac9352c87bb.tar.bz2 |
bpo-29240: PyUnicode_DecodeLocale() uses UTF-8 on Android (#5272)
PyUnicode_DecodeLocaleAndSize(), PyUnicode_DecodeLocale() and
PyUnicode_EncodeLocale() now use always use the UTF-8 encoding on
Android, instead of the current locale encoding.
On Android API 19, mbstowcs() and wcstombs() are broken and cannot be
used.
Diffstat (limited to 'Doc')
-rw-r--r-- | Doc/c-api/unicode.rst | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/Doc/c-api/unicode.rst b/Doc/c-api/unicode.rst index 3f6c055..92e22b1 100644 --- a/Doc/c-api/unicode.rst +++ b/Doc/c-api/unicode.rst @@ -760,7 +760,8 @@ system. Py_ssize_t len, \ const char *errors) - Decode a string from the current locale encoding. The supported + Decode a string from UTF-8 on Android, or from the current locale encoding + on other platforms. The supported error handlers are ``"strict"`` and ``"surrogateescape"`` (:pep:`383`). The decoder uses ``"strict"`` error handler if *errors* is ``NULL``. *str* must end with a null character but @@ -780,7 +781,7 @@ system. .. versionchanged:: 3.7 The function now also uses the current locale encoding for the - ``surrogateescape`` error handler. Previously, :c:func:`Py_DecodeLocale` + ``surrogateescape`` error handler, except on Android. Previously, :c:func:`Py_DecodeLocale` was used for the ``surrogateescape``, and the current locale encoding was used for ``strict``. @@ -795,7 +796,8 @@ system. .. c:function:: PyObject* PyUnicode_EncodeLocale(PyObject *unicode, const char *errors) - Encode a Unicode object to the current locale encoding. The + Encode a Unicode object to UTF-8 on Android, or to the current locale + encoding on other platforms. 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. *unicode* cannot @@ -815,7 +817,8 @@ system. .. versionchanged:: 3.7 The function now also uses the current locale encoding for the - ``surrogateescape`` error handler. Previously, :c:func:`Py_EncodeLocale` + ``surrogateescape`` error handler, except on Android. Previously, + :c:func:`Py_EncodeLocale` was used for the ``surrogateescape``, and the current locale encoding was used for ``strict``. |