Re: Kvízové soubory
Miroslav Mraz
mrazik na volny.cz
Sobota Únor 25 19:58:13 CET 2023
Ono je to celkem jedno, jen mě zajímalo jestli tam není utf-8 jako na
Linuxu (nebo jestli to vůbec funguje). V těch anglických bude patrně jen
jiná cp něco jako cp1252.
Já jsem si s tím odpoledne hrál pomocí metod encode() a decode() a
jediné co jsem zjistil, že se musí shodovat kódování editoru, ve kterém
píšete zdroják pythonu a ten řádek, kterým říkáte interpretru, že je to
právě toto kódování (# -*- coding: cp1250 -*-). Pak si interpretr volá
ty metody encode() a decode() automaticky, takže pokud napíšu string v
cp1250 a locale mám utf-8, string se vypíše (příp. zapíše do souboru) v
kódování utf-8, aniž bych se o to nějak musel starat. Možná by bylo
vhodné to ručně překódovat, protože v anglické kódové stránce nemusí
nějaké znaky být a v těch metodách se dá nastavit co s tím při této chybě.
Je vidět, že je to dělané pro blbce, což bývá ošemetné. Například v Qt
je text ve třídě QString, má to nějakou interní reprezentaci, která zase
nemusí programátora tolik zajímat, ale když píšu v textovém editoru v
utf-8, můžu napsat QString s("ascii znaky");, ale pokud tam mám paznaky
musím použít QString s = QString::fromUtf8("České paznaky");
V gui, tedy uvnitř Qt se to pak chová normálně, pokud s tím chci jít
ven, třeba do souboru, musím to překódovat s.toUtf8(), což vyhodí
QByteArray a to jde zapsat do souboru. A protože na rozdíl od pythonu to
má typy, už překladač mi vynadá, že QString do souboru nepatří.
Mrazík
On 25. 02. 23 18:25, Pavel Hudeček wrote:
> V tomhle případě byl možná ještě problém s konzolí ve Spyderu, nebo
> jakém python GUI, co používá ten kolega. Já z toho viděl jen screenshot,
> kde byly řádky se zmršenými mikrometry a končilo to řádkem obsahujícím
> zmršený text "Technická univerzita v Bratislavě", nebo tak nějak a pod
> tím error na fileOK.write. A pak další screenshot, kde byly červeně
> zakroužkovány zcela nesouvisející části kódu, že prej mu tam Spyder
> hlásí ňákej warning:-)
>
> Tady u mě doma, na w11 CZ je výsledek dle očekávání ('cs_CZ', 'cp1250')
> teda nevím co je přesně to cs_CZ :-)
> ...
Další informace o konferenci Hw-list