Always correct encoding when writing to sys.stderr (Fixes #1435)

This commit is contained in:
Philipp Hagemeister 2013-09-16 06:55:33 +02:00
parent f9e66fb993
commit 7459e3a290
3 changed files with 23 additions and 15 deletions

View file

@ -790,6 +790,18 @@ def platform_name():
return res
def write_string(s, out=None):
if out is None:
out = sys.stderr
assert type(s) == type(u'')
if ('b' in getattr(out, 'mode', '') or
sys.version_info[0] < 3): # Python 2 lies about mode of sys.stderr
s = s.encode(preferredencoding(), 'ignore')
out.write(s)
out.flush()
def bytes_to_intlist(bs):
if not bs:
return []