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