From: Vinay Sajip Date: Mon, 24 Oct 2011 22:23:02 +0000 (+0100) Subject: Closes #13232: Handle multiple encodings in exception logging. X-Git-Tag: v2.7.3rc1~380 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9a11b296b27d4cd11f86c3dde3d0c3683fb14690;p=python Closes #13232: Handle multiple encodings in exception logging. --- diff --git a/Lib/logging/__init__.py b/Lib/logging/__init__.py index aaad89884f..c18d5ba04e 100644 --- a/Lib/logging/__init__.py +++ b/Lib/logging/__init__.py @@ -478,8 +478,12 @@ class Formatter(object): except UnicodeError: # Sometimes filenames have non-ASCII chars, which can lead # to errors when s is Unicode and record.exc_text is str - # See issue 8924 - s = s + record.exc_text.decode(sys.getfilesystemencoding()) + # See issue 8924. + # We also use replace for when there are multiple + # encodings, e.g. UTF-898 for the filesystem and latin-1 + # for a script. See issue 13232. + s = s + record.exc_text.decode(sys.getfilesystemencoding(), + 'replace') return s #