Vlákno názorů k článku Perličky: kódování znaků a unicode od anonym - Takovéto konverzní programy jsou úplně k ničemu. Autor si...

  • Článek je starý, nové názory již nelze přidávat.
  • 25. 9. 2008 15:58

    anonymní
    Takovéto konverzní programy jsou úplně k ničemu.
    Autor si ještě vybere příklad, jak ošetřit znaky azbuky, ale nafláká je do výstupu jako Unicodové HTML-symboly.
    Místo opisování z ruských pramenů by asi měl uvést příklad, jak třeba převést v UTF-8 zapsané znaky z Windows-1250 na znaky sady ISO-8859-2 (tedy třeba dlouhou pomlčku na normální). Jinak to nemůže použít dál (jen na HTML-výstup).
    Musím ale poznamenat, že tohle již před do 10 lety udělali programátoři Lynxu. Ten dělá převody, jak normální lidé čekají. Stačí jen se ho v Perlu naučit aktivovat na vstup nebo výstup.
    P.S.
    Hlavně mi není jasné, proč tohle neopsali programátoři Perlu 5.8 ?
  • 25. 9. 2008 17:17

    Petr Menšík
    Nevím teda proč jsou takové programy úplně k ničemu. Jediné, co mě v příkladech chybí je, jak poznám, že se konverze nepovedla a mohu na ni reagovat v programu. Jinak HTML symboly jsou jenom pro ukázku, nevidím na tom nic strašného. Sice běžně to asi takhle ohýbat chtít nebudete, ale dobře.

    Taky porovnávat převádění ve webového prohlížeči, kde není zásadní ani tak správnost převodu, ale srozumitelnost přeloženého textu, aby vypadal alespoň podobně. Normální člověk není programátor. Programátor potřebuje přesně vědět, co mu leze na vstupu, potom převod nemůže dopadnout špatně. Pokud to neví, tak to je problém programátora nebo systému. Programovací jazyk tohle asi moc rozumně vyřešit nemůže.

    Jinak, když budu chtít BOM u souboru, tak předpokládám můžu zapomentou na #!/usr/bin/perl na prvním řádku, co? Předpokládám že linuxový kernel takové značky nepodporuje.
  • 25. 9. 2008 19:57

    Michal Svoboda
    Muzete si pri prevodu nastavit variantu warn nebo croak. Pri warn bude uzivatel varovan - coz uplne v programu neodchytite ale aspon bude videt ze je neco v neporadku (to je videt i pri otaznicich ale ne tolik). Pri variante croak se provede obdoba die, coz muzete odchytit jako klasickou vyjimku pomoci eval a analyzy $@ - viz cast serialu o vyjimkach - a delat si s tim dal co potrebujete.

    S tim ohybanim do HTML - proc ne, spousta skriptu muze byt nasazena v CGI prostredi. Sice do HTML muzete narvat utf8 primo (coz jsem udelal pri psani clanku), ale treba ne kazdej filtr postavenej za vas skript to zvladne apod.

    BOM bych nevidel tak tragicky. Nikde neni napsano ze to musi byt prvni znak, jak to tam cpe notepad ve windows. IMHO staci, aby BOM byl na stejnym miste jako byste dal use utf8, tj. pred prvnim neascii znakem. Jestli to rozdycha kernel v shebangu je otazka, ale ja myslim ze ne. Muzete to dat jako namet na LKML :-)
  • 25. 9. 2008 19:49

    Michal Svoboda
    Konverzni program je pouze priklad prace s Unicode v Perlu (muzete sem hodit lepsi, mate-li). HTML varianta je jedna moznost co lze provest s nepreveditelnym (zde mysleno bezstratove) vystupem. Myslim si, ze zrovna v tomto pripade nelze jednoznacne urcit co normalni lide cekaji - proto je tam tech moznosti vice. To co chcete vy je "ztratovy prevod", tedy napr. 'č' na 'c'. Zkuste se podivat napr. na modul Text::Unidecode. A nerozcilujte se :-)