[python] Unicode/ne-unicode problem
Zdeněk Böhm
zdenek.bohm na seznam.cz
Středa Květen 2 15:01:34 CEST 2012
Tento problém vzniká, když je text převeden do lokálního kódování dvakrát.
# výchozí text:
>>> "ě š č ř"
'\xc4\x9b \xc5\xa1 \xc4\x8d \xc5\x99'
# Tady se text chybně považuje za unicode:
text = u'\xc4\x9b \xc5\xa1 \xc4\x8d \xc5\x99'.encode("utf8")
# a takovou to pak udělá "paseku":
>>> text
'\xc3\x84\xc2\x9b \xc3\x85\xc2\xa1 \xc3\x84\xc2\x8d \xc3\x85\xc2\x99'
>>> print text
Ä Å¡ Ä Å
# Takto se to opraví zpět do správného tvaru:
>>> fixed = text.encode('raw_unicode_escape').decode('utf-8')
>>> print fixed
ě š č ř
Další informace o konferenci Python