<html><body>Díky, to vypadá dobře.<div><br></div><div>PH<br><aside>
---------- Původní e-mail ----------<br>
Od: Pavel Brychta <pavel.brychta@duhasys.eu><br></aside><blockquote data-email="pavel.brychta@duhasys.eu">
<div class="-wm-moz-cite-prefix">Tak jeste jeden napad - zkuste
print(str.decode('utf8', 'replace')) - melo by to nahradit kazdy
vadny znak znakem uFFFD (otaznik v kosoctverci) - da se
predefinovat v replace error handleru.</div>
<div class="-wm-moz-cite-prefix"><br>
</div>
<div class="-wm-moz-cite-prefix">Dne 13. 10. 21 v 10:00 Pavel Brychta
napsal(a):<br>
</div>
<blockquote>
<div class="-wm-moz-cite-prefix">Aha, takze chyba je uz v obsahu toho
retezce a ne v nejake konverzi predtim. V tom pripade je treba
se zamerit na to, jak se tam ty nesmysly dostaly. Standardni
metody dokazou ten retezec prevest maximalne s ignorovanim chyb
(treba str.encode('ascii', 'ignore') ), coz ale znamena, ze
invalidni byty vystriha pryc. Dalsi moznost pak je nepouzit
konverzi na bytearray, ale proiterovat to rucne (treba
ord(str[i]), nebo primo str[i], popr '%x' % str[i])<br>
</div>
<div class="-wm-moz-cite-prefix"><br>
</div>
<div class="-wm-moz-cite-prefix">P.B.</div>
<div class="-wm-moz-cite-prefix"><br>
</div>
<div class="-wm-moz-cite-prefix">Dne 12. 10. 21 v 13:49 Pavel Hudeček
napsal(a):<br>
</div>
<blockquote>
Omlouvám se, ale nějak mi není jasné, jak to může pomoct. Udělám
nějakej konvert ze stringu do bytearray a ten umře úplně stejným
způsobem. Nebo se to dá konvertit nějak blbuvzdorně?
<div><br>
</div>
<div>PH</div>
<div><br>
<aside> ---------- Původní e-mail ----------<br>
Od: Pavel Brychta <a class="-wm-moz-txt-link-rfc2396E" href="mailto:pavel.brychta@duhasys.eu"><pavel.brychta@duhasys.eu></a><br>
</aside>
<blockquote data-email="pavel.brychta@duhasys.eu">
<p>DD,</p>
<p>Python 2.X má řetězce jako pole bytů, Python 3.x má
implicintí řetězce v Unicode. Neuvedl jste, kterou verzi
Pythonu používáte, ale předpokládám, že >3, takže se
zkuste odívat na Pythoní bytearray ( <a class="-wm-moz-txt-link-freetext" href="https://docs.python.org/release/3.1.3/library/functions.html#bytearray">https://docs.python.org/release/3.1.3/library/functions.html#bytearray</a>
), který potom dumpnete ven.</p>
<p>P.B.<br>
</p>
<div class="-wm-moz-cite-prefix">Dne 12. 10. 21 v 12:20
Pavel Hudeček napsal(a):<br>
</div>
<blockquote> Dobrý den všem,
<div><br>
</div>
<div>mějme string vygenerovaný knihovnou, který občas může
obsahovat divné znaky. A já bych ho chtěl zobrazit bez
záruky správnosti enkódování. Prostě aby bylo vidět co
tam asi tak je.</div>
<div><br>
</div>
<div>Když udělám <span style="background-color:transparent">for a print(str) </span><span style="background-color:transparent">zobrazí se třeba
10 ze 13 stringů a pak nastane:</span></div>
<div><span style="background-color:transparent">UnicodeDecodeError:
'utf-8' codec can't decode byte 0xff in position 5:
invalid start byte<br>
</span></div>
<div><span style="background-color:transparent"><br>
</span></div>
<div><span style="background-color:transparent">Je nějaký
způsob, jak ho zobrazit bez errorů i za cenu, že to
nebude zcela správně?</span></div>
<div><span style="background-color:transparent"><br>
</span></div>
<div><span style="background-color:transparent">Poznámka:
Na Win10 to funguje bez errorů, ale ne Linuxu nastává
tenhle error. Ale je možné, že rozdíl win/lin je na
straně vzniku toho stringu.</span></div>
<div><span style="background-color:transparent"><br>
</span></div>
<div><span style="background-color:transparent">Je teda
nějakej způsob, jak string zcela hloupě zobrazit, asi
jako když se v roce 1995 zmáčklo F3 ve Volkov
Commanderu?</span></div>
<div><br></div></blockquote></blockquote></div></blockquote></blockquote></blockquote></div></body></html>