From: Victor Stinner Date: Wed, 2 Mar 2011 01:21:46 +0000 (+0000) Subject: Fix my previous commit (r88709) for str.encode(errors=...) X-Git-Tag: v3.3.0a1~3011 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2f283c2c19f821dd5a0f2ad4a4da4c90fe583bb9;p=python Fix my previous commit (r88709) for str.encode(errors=...) --- diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c index 68012597ca..1d0e97b8ce 100644 --- a/Objects/unicodeobject.c +++ b/Objects/unicodeobject.c @@ -1709,21 +1709,26 @@ PyUnicode_AsEncodedString(PyObject *unicode, return NULL; } - if (encoding == NULL) - return PyUnicode_AsUTF8String(unicode); + if (encoding == NULL) { + if (errors == NULL || strcmp(errors, "strict") == 0) + return PyUnicode_AsUTF8String(unicode); + else + return PyUnicode_EncodeUTF8(PyUnicode_AS_UNICODE(unicode), + PyUnicode_GET_SIZE(unicode), + errors); + } /* Shortcuts for common default encodings */ if (normalize_encoding(encoding, lower, sizeof(lower))) { if ((strcmp(lower, "utf-8") == 0) || (strcmp(lower, "utf8") == 0)) { - if (errors == NULL || strcmp(errors, "strict") == 0) { + if (errors == NULL || strcmp(errors, "strict") == 0) return PyUnicode_AsUTF8String(unicode); - } else { + else return PyUnicode_EncodeUTF8(PyUnicode_AS_UNICODE(unicode), PyUnicode_GET_SIZE(unicode), errors); - } } else if ((strcmp(lower, "latin-1") == 0) || (strcmp(lower, "latin1") == 0) ||