OT Python print a errory s unicode
Pavel Brychta
pavel.brychta na duhasys.eu
Středa Říjen 13 10:06:29 CEST 2021
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.
Dne 13. 10. 21 v 10:00 Pavel Brychta napsal(a):
> 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])
>
> P.B.
>
> Dne 12. 10. 21 v 13:49 Pavel Hudeček napsal(a):
>> 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ě?
>>
>> PH
>>
>> ---------- Původní e-mail ----------
>> Od: Pavel Brychta <pavel.brychta na duhasys.eu>
>>
>> DD,
>>
>> 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 (
>> https://docs.python.org/release/3.1.3/library/functions.html#bytearray
>> <https://docs.python.org/release/3.1.3/library/functions.html#bytearray>
>> ), který potom dumpnete ven.
>>
>> P.B.
>>
>> Dne 12. 10. 21 v 12:20 Pavel Hudeček napsal(a):
>>
>> Dobrý den všem,
>>
>> 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.
>>
>> Když udělám for a print(str) zobrazí se třeba 10 ze 13
>> stringů a pak nastane:
>> UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in
>> position 5: invalid start byte
>>
>> Je nějaký způsob, jak ho zobrazit bez errorů i za cenu, že to
>> nebude zcela správně?
>>
>> 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.
>>
>> Je teda nějakej způsob, jak string zcela hloupě zobrazit, asi
>> jako když se v roce 1995 zmáčklo F3 ve Volkov Commanderu?
>>
>> Díky,
>> PH
>>
>> _______________________________________________
>> HW-list mailing list - sponsored bywww.HW.cz <http://www.hw.cz>
>> Hw-list na list.hw.cz <mailto:Hw-list na list.hw.cz>
>> http://list.hw.cz/mailman/listinfo/hw-list <http://list.hw.cz/mailman/listinfo/hw-list>
>>
>> _______________________________________________
>> HW-list mailing list - sponsored by www.HW.cz
>> Hw-list na list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
>>
>>
>> _______________________________________________
>> HW-list mailing list - sponsored bywww.HW.cz
>> Hw-list na list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
>
>
>
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20211013/781749b4/attachment.html>
Další informace o konferenci Hw-list