right adjusted strings containing umlauts
Peter Otten
__peter__ at web.de
Thu Aug 8 12:34:51 EDT 2013
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
More information about the Python-list
mailing list