Commit ae7c4a0a authored by Vinay Sajip's avatar Vinay Sajip

Issue #5170: Fixed regression caused when fixing #5768.

parent 6b678463
......@@ -766,7 +766,17 @@ class StreamHandler(Handler):
try:
if (isinstance(msg, unicode) and
getattr(stream, 'encoding', None)):
stream.write(fs.decode(stream.encoding) % msg)
fs = fs.decode(stream.encoding)
try:
stream.write(fs % msg)
except UnicodeEncodeError:
#Printing to terminals sometimes fails. For example,
#with an encoding of 'cp1251', the above write will
#work if written to a stream opened or wrapped by
#the codecs module, but fail when writing to a
#terminal even when the codepage is set to cp1251.
#An extra encoding step seems to be needed.
stream.write((fs % msg).encode(stream.encoding))
else:
stream.write(fs % msg)
except UnicodeError:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment