]> git.donarmstrong.com Git - lilypond.git/commitdiff
lilylib: handle encodings. Fixes #1073 and u#714213.
authorJan Nieuwenhuizen <janneke@gnu.org>
Thu, 17 Mar 2011 20:44:05 +0000 (21:44 +0100)
committerFrancisco Vila <francisco.vila@hispalinux.es>
Mon, 21 Mar 2011 16:14:00 +0000 (17:14 +0100)
python/lilylib.py

index 3bf77f6f44c5a439cfaf799e24d76275d685390e..6fb96bbbf59959fccdc19a15cd846785a5befb0a 100644 (file)
@@ -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@'