Já vidím tohle: >>> rr = "'\\xc3\\xbd \\xc3\\xb7 \\xc3\\xad \\xc3.'" >>> a = eval(rr) >>> a '\xc3\xbd \xc3\xb7 \xc3\xad \xc3.' >>> u = a.decode('utf-8') Traceback (most recent call last): File "<stdin>", line 1, in <module> File "c:\Python27\lib\encodings\utf_8.py", line 16, in decode return codecs.utf_8_decode(input, errors, True) UnicodeDecodeError: 'utf8' codec can't decode byte 0xc3 in position 9: invalid continuation byte
To rr je okopírované tvoje repr. Pomocí eval() to převedu na hodnotu a. Pak volám a.decode('utf-8') a ono to jinými slovy říká, že to není v utf-8. P. ______________________________________________________________ > Od: "Jaroslav Lukesh" <luk...@seznam.cz> > Komu: Konference PyCZ <python@py.cz> > Datum: 02.05.2012 11:52 > Předmět: Re: [python] Unicode/ne-unicode problem > >Je to proměnná, kde obsah byl získaný ze streamu dat. > >>>> a='Ă˝ á Ă Ă.' >>>> repr(a) >"'\\xc3\\xbd \\xc3\\xb7 \\xc3\\xad \\xc3.'" > >Dík, JL. > > >----- Původní zpráva ----- >Od: "Petr Přikryl" <prik...@atlas.cz> > > >Ten nečitelný řetězec je zapsaný ve zdrojovém textu, nebo je načtený ze >souboru? >Když mám v proměnné UTF-8 bajty, tak musím udělat .decode() nebo unicode(), >ale jako parametr musím uvést to 'utf-8'. > >Posloupnost bajtů v kódovaní UTF-8 je jednou z možných reprezentací Unicode >řetězce. Vznikla tedy zakódováním (například u.encode('utf-8')) unicodového >řetězce. >Když z toho chci dostat zpět Unicode řetězec, musím provést dekódování, >takže u = s.decode('utf-8') nebo u = unicode(s, 'utf-8'). > >Je možné, že je ta posloupnost bajtů porušená, pak to může řvát, že neví co >s tím. >Pošli sem, jak vypadá repr(a) (pokud je to pro Python 2). > >Ptej se dál, ono se to vyjasní. > >P. > >______________________________________________________________ >> Od: "Jaroslav Lukesh" <luk...@seznam.cz> >> Komu: Konference PyCZ <python@py.cz> >> Datum: 27.04.2012 10:35 >> Předmět: [python] Unicode/ne-unicode problem >> >>Dobrý den, >> >>potřeboval bych dostat z binárních dat utf8 na vstupu normální neunicodový >>výstup, ale nějak mi to nejde. >> >>Vstup: znaky "ě š č ř" v utf8 již v binární formě, systém je v iso8859-2 >> >>Čekám že z toho nějak dostanu "ě š č ř" ale pořád nic. Jak mu říct, že 'Ă˝ >>á Ă Ă.' je už v utf8? >> >>Děkuji, JL. >> >>>>> a='Ă˝ á Ă Ă.' >>>>> A=unicode(a,'iso8859-2') >>>>> print a >>Ă˝ á Ă Ă. >>>>> A=unicode(a,'utf8') >>Traceback (most recent call last): >> File "<stdin>", line 1, in ? >> File "/var/zope/python/lib/python2.4/encodings/utf_8.py", line 16, in >>decode >> return codecs.utf_8_decode(input, errors, True) >>UnicodeDecodeError: 'utf8' codec can't decode bytes in position 9-10: >>invalid data >> >>>>> A.encode('iso8859-2') >>'\xc3\xbd \xc3\xb7 \xc3\xad \xc3.' >> >>>>> a.encode('iso8859-2') >>Traceback (most recent call last): >> File "<stdin>", line 1, in ? >> File "/var/zope/python/lib/python2.4/encodings/iso8859_2.py", line 18, in >>encode >> return codecs.charmap_encode(input,errors,encoding_map) >>UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 0: >>ordinal not in range(128) >>>>> >> >>>>> A.decode('iso8859-2') >>Traceback (most recent call last): >> File "<stdin>", line 1, in ? >> File "/var/zope/python/lib/python2.4/encodings/iso8859_2.py", line 22, in >>decode >> return codecs.charmap_decode(input,errors,decoding_map) >>UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: >>ordinal not in range(128) >>>>> a.decode('iso8859-2') >>u'\u0102\u02dd \u0102\u02c7 \u0102\xad \u0102.' >>>>> a.decode('utf8') >>Traceback (most recent call last): >> File "<stdin>", line 1, in ? >> File "/var/zope/python/lib/python2.4/encodings/utf_8.py", line 16, in >>decode >> return codecs.utf_8_decode(input, errors, True) >>UnicodeDecodeError: 'utf8' codec can't decode bytes in position 9-10: >>invalid data >>>>> >> >> >>_______________________________________________ >>Python mailing list >>Python@py.cz >>http://www.py.cz/mailman/listinfo/python >> >_______________________________________________ >Python mailing list >Python@py.cz >http://www.py.cz/mailman/listinfo/python > >_______________________________________________ >Python mailing list >Python@py.cz >http://www.py.cz/mailman/listinfo/python > _______________________________________________ Python mailing list Python@py.cz http://www.py.cz/mailman/listinfo/python