From 9a11b296b27d4cd11f86c3dde3d0c3683fb14690 Mon Sep 17 00:00:00 2001 From: Vinay Sajip Date: Mon, 24 Oct 2011 23:23:02 +0100 Subject: Closes #13232: Handle multiple encodings in exception logging. --- Lib/logging/__init__.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Lib/logging/__init__.py b/Lib/logging/__init__.py index aaad898..c18d5ba 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 # -- cgit v0.12