STINNER Victor <victor.stin...@haypocalc.com> added the comment: About issue9198.diff: - exit directly if !PyErr_ExceptionMatches(PyExc_UnicodeEncodeError) to avoid an useless level of indentation - why do you clear the exception before calling PyObject_Repr()? if you cannot execute code while an exception is active, you should maybe save/restore the original exception? - the code is long: it can maybe be moved to a subfunction - PyObject_CallMethod(buffer, "write", "(O)", encoded) to call write method - you can maybe just use strict error handler when you decode the encoded variable: it doesn't work anyway
>>> b"a\xff".decode("ascii", "backslashreplace") ... TypeError: don't know how to handle UnicodeDecodeError in error callback >>> b"a\xff".decode("utf-8", "backslashreplace") ... TypeError: don't know how to handle UnicodeDecodeError in error callback Note: some encodings don't support backslashreplace, especially mbcs encoding. But on Windows, sys.stdout.encoding is not mbcs but cpXXXX (eg. cp850). ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue9198> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com