>From 3189ec68d200e45018c899ff0e85c5894f6442b5 Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Thu, 17 Mar 2011 21:44:05 +0100 Subject: [PATCH] lilylib: handle encodings. Fixes #1073 and u#714213. --- python/lilylib.py | 10 ++++++++-- 1 files changed, 8 insertions(+), 2 deletions(-) diff --git a/python/lilylib.py b/python/lilylib.py index 3bf77f6..4ee5bcf 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')) # 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') # Lilylib globals. program_version = '@TOPLEVEL_VERSION@' -- 1.7.1