Zmateny perl z kodovani
Ondrej Koala Vacha
koala na vju.cz
Středa Leden 19 15:17:14 MET 2005
On Wed, 19 Jan 2005, Honza Pazdziora wrote:
> Pokud si napisu knihovnu v C, ktera bude vracet nejaka data, Vy si
> kolem toho napisete XS wrapper a budete to volat z Perlu, tak
> v obecnem pripade nebudete chtit, aby retezce, ktere Vam vracim, Perl
> jakymkoli zpusobem modifikoval. Treba je to JPEG nebo gzip nebo cokoli
A jak je to tedy ted, kdyz nacitam JPEG nebo gzip ze souboru?
Sice uz jsem to dlouho nedelal, ale ted cekam, ze bych musel pouzit
binmode v pripade opravdu binarnich dat. Naopak pokud pracuji s textovym
souborem, tak cekam, ze muzu bez problemu delat zameny a nemusim se
starat, jak to perl resi unitr. Tedy ze v mem pripade nacte data v latin2,
prevede si je do interniho formatu a vrati/zapise opet jako latin2.
Tedy ze mohou nastat 2 moznosti: bud je vstupni kodovani definovane, a pak
at si perl dela prevody jake chce; nebo neni a pak jsou to binarni data,
ktera se nesmi jakkoli prevadet.
> jineho, co dostanete jako posloupnost bajtu. Stejne tak v pripade HTTP
> pozadavku -- pokud server vrati data v ISO-8859-2 a nastavi spravne
> hlavicku, jsou dve moznosti -- budto dostanete ten retezec jako bajty,
> nebo budete ocekavat, ze nejaka magie v Perlu bude tento a jiny
Zrovna u HTTP bych cekal, ze neco nactu, udelam par textovych zamen typu
s/ +/ /og a nekam zapisu. Mam se zacit bat, ze to dopadne stejne neslavne
jako pri cteni dat z DBI/DBD?
> protokol umet a obcas Vam prekoduje do UTF-8. To je prece nesmysl.
>
> Ze zrovna v pripade DBI se zda, ze by bylo vhodne, aby znakova data
> byla znakovymi daty, je sice pekne, ale rozhodne to neznamena, ze by
> to bez podpory DBD pro konkretni databazi slo nejak pekne udelat.
Nevim; po pouziti use encoding 'iso-8859-2' si myslim, ze perlu rikam, ze
vstupy jsou v latin2, binarni si musim explicitne osetrit jinak. Ted se mi
zda, ze u kazdeho zdroje dat (DBI,HTTP,FTP, soket...) si clovek bude muset
pamatovat, jak je perl vlastne nacetl, tedy jestli si si o nich opravnene mysli, ze jsou v jeho internim
formatu.
ufffff
--
Ondrej Koala Vacha
Další informace o konferenci Perl