Kurt Mueller wrote: > Am 08.08.2013 17:44, schrieb Peter Otten: >> Kurt Mueller wrote: >>> What do I do, when input_strings/output_list has other codings like >>> iso-8859-1? >> >> You have to know the actual encoding. With that information it's easy: >>>>> output_list >> ['\xc3\xb6', '\xc3\xbc', 'i', 's', 'f'] >>>>> encoding = "utf-8" >>>>> output_list = [s.decode(encoding) for s in output_list] >>>>> print output_list >> [u'\xf6', u'\xfc', u'i', u's', u'f'] > > How do I get to know the actual encoding? > I read from stdin. There can be different encondings. > Usually utf8 but also iso-8859-1/latin9 are to be expected. > But sys.stdin.encoding sais always 'None'.
Even with $ cat funny_pic.jpg | ./mypythonscript.py you could "successfully" (i. e. no errors) decode stdin using iso-8859-1. So unfortunately you have to guess. A simple strategy is to try utf-8 and fall back to iso-8859-1 if that fails with a UnicodeDecodeError. There's also https://pypi.python.org/pypi/chardet -- http://mail.python.org/mailman/listinfo/python-list