Myslím že jsem to zkopíroval celé, ale mohlo mi něco utéct. Jenže teď to mám z uložených poznámek v PSpadu, tak ten do toho taky kecal a teď je to úplně jinak, než to co jsem v pondělí kopíroval přímo do promptu, ach jo.
No nic, musím to znova vygenerovat. ----- Původní zpráva ----- Od: Petr Messner Komu: Konference PyCZ Odesláno: 2. května 2012 13:33 Předmět: Re: [python] Unicode/ne-unicode problem Ono to možná nikam nevede. Bez posledních dvou znaků je to OK: >>> print "\xC3\xBD \xC3\xB7 \xC3\xAD".decode("utf8") ý ÷ í Ono za \xC3 musí z definice UTF-8 následovat bajt, který má nastavený nejvyšší bit, a to obyčejná tečka není snad v žádném kódování, rozhodně v žádném založeném na ASCII jako je cp1250, latin1, latin2 atd. Prostě si myslím, že tohle: 'Ă˝ á Ă Ă.' je špatně, nějak useknuté, něco vynechané apod. Můžete nám ten zdroj dat v UTF-8 nějak popsat? Je to nějaká databáze? PM Dne 2. května 2012 13:08 Jaroslav Lukesh <luk...@seznam.cz> napsal(a): Mezitím jsme v jiném threadu zjistili, že jde o utf8 zapsané v cp1250, ale i tak mám tohle - Python 2.4.6: a='Ă˝ á Ă Ă.' repr(a) "'\\xc3\\xbd \\xc3\\xb7 \\xc3\\xad \\xc3.'" a.decode("cp1250") u'\u0102\u02dd \u0102\xb7 \u0102\xad \u0102.' print eval(a).decode("cp1250") Traceback (most recent call last): File "<stdin>", line 1, in ? File "<string>", line 1 Ă˝ á Ă Ă. ^ SyntaxError: invalid syntax No teď už jenom to reverznout z cp1250 na utf8 a to pak už správně převést na cp1250. jenže necode/decode neumí vzít 2 parametry pro kódování, tak se to pokusím zřetězit: a.decode('cp1250') u'\u0102\u02dd \u0102\xb7 \u0102\xad \u0102.' a.decode('cp1250').encode('utf8') '\xc4\x82\xcb\x9d \xc4\x82\xc2\xb7 \xc4\x82\xc2\xad \xc4\x82.' Sice jsem pokročil, ale je to nějak delší a delší. ----- Původní zpráva ----- Od: "Petr Přikryl" <prik...@atlas.cz> 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 _______________________________________________ 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