From: Guido van Rossum Date: Thu, 4 May 2000 15:55:17 +0000 (+0000) Subject: When the UTF-8 conversion to Unicode fails, return an 8-bit string X-Git-Tag: v2.0b1~1848 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=69529ad0ccbe2fb68427de92763d7a5322b63d31;p=thirdparty%2FPython%2Fcpython.git When the UTF-8 conversion to Unicode fails, return an 8-bit string instead. This seems more robust than returning an Unicode string with some unconverted charcters in it. This still doesn't support getting truly binary data out of Tcl, since we look for the trailing null byte; but the old (pre-Unicode) code did this too, so apparently there's no need. (Plus, I really don't feel like finding out how Tcl deals with this in each version.) --- diff --git a/Modules/_tkinter.c b/Modules/_tkinter.c index 882715f12db5..6c3beef01eb2 100644 --- a/Modules/_tkinter.c +++ b/Modules/_tkinter.c @@ -654,7 +654,11 @@ Tkapp_Call(self, args) else { /* Convert UTF-8 to Unicode string */ p = strchr(p, '\0'); - res = PyUnicode_DecodeUTF8(s, (int)(p-s), "ignore"); + res = PyUnicode_DecodeUTF8(s, (int)(p-s), "strict"); + if (res == NULL) { + PyErr_Clear(); + res = PyString_FromStringAndSize(s, (int)(p-s)); + } } }