From: Jan Nieuwenhuizen Date: Thu, 17 Mar 2011 20:44:05 +0000 (+0100) Subject: lilylib: handle encodings. Fixes #1073 and u#714213. X-Git-Tag: release/2.13.55-1~6 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=e378c1bba8d1db2689fe815c449ace57e234ab17;p=lilypond.git lilylib: handle encodings. Fixes #1073 and u#714213. --- diff --git a/python/lilylib.py b/python/lilylib.py index 3bf77f6f44..6fb96bbbf5 100644 --- a/python/lilylib.py +++ b/python/lilylib.py @@ -47,13 +47,19 @@ underscore = _ # Urg, Python 2.4 does not define stderr/stdout encoding # Maybe guess encoding from LANG/LC_ALL/LC_CTYPE? +reload (sys) +sys.setdefaultencoding ('utf-8') +import codecs +sys.stdout = codecs.getwriter ('utf8') (sys.stdout) +sys.stderr = codecs.getwriter ('utf8') (sys.stderr) + def encoded_write(f, s): - f.write (s.encode (f.encoding or 'utf_8')) + f.write (s.encode (f.encoding or 'utf-8', 'replace')) # ugh, Python 2.5 optparse requires Unicode strings in some argument # functions, and refuse them in some other places def display_encode (s): - return s.encode (sys.stderr.encoding or 'utf_8') + return s.encode (sys.stderr.encoding or 'utf-8', 'replace') # Lilylib globals. program_version = '@TOPLEVEL_VERSION@'