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