From 767f49f2d3e6ded0f2e01563fcf2d272aa6a7141 Mon Sep 17 00:00:00 2001 From: Kamil Dudka Date: Mon, 31 Mar 2014 14:38:57 +0200 Subject: [PATCH] units_cur2: encode utf-8 for sys.stdout, too Otherwise, the script ends up with the following error: $ python2 ./units_cur2 - | cat ./units_cur2:53: RuntimeWarning: Argument is not an unicode object. Passing an encoded string will likely have unexpected results. ascii = unidecode(names[i]) Traceback (most recent call last): File "./units_cur2", line 114, in outfile.write(outstr.replace('\n',os.linesep)) UnicodeEncodeError: 'ascii' codec can't encode character u'\xf3' in position 41: ordinal not in range(128) --- units_cur2 | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/units_cur2 b/units_cur2 index 7d4e8f5..d810be5 100755 --- a/units_cur2 +++ b/units_cur2 @@ -104,7 +104,8 @@ for metal in metals: try: if outfile == '-': - outfile = sys.stdout + info = codecs.lookup('utf8') + outfile = codecs.StreamReaderWriter(sys.stdout, info.streamreader, info.streamwriter) else: outfile = codecs.open(outfile,'w','utf8') except IOError, exc: -- 1.7.1