Zmateny perl z kodovani
Ondrej Koala Vacha
koala na vju.cz
Středa Leden 19 11:28:07 MET 2005
On Wed, 19 Jan 2005, Honza Pazdziora wrote:
> > $a = Encode::decode('iso-8859-2',$a); # prevadim do perl internal format
> > $a = s/ +/ /og;
> > $a = Encode::encode('iso-8859-2',$a); # prevadim zpet do iso-8859-2, i
>
> Ne, nemelo by byt potreba delat zpet ten encode. Vy chcete z bytu od
> DBI dostat znaky (tedy UTF-8, ale nas nezajima, ze to je UTF-8) a pak
> uz pracovat pouhopouze se znaky, a nechat na encodingu navesenem na
> filehandlech, aby ty znaky pak prislusne prevedly.
I kdyz pouzivam perl -w test.pl, tak zadne varovani nejde, ale bez toho
encode je prikaz write zmateny s opakovaci predlohou ^<<<<<<<~~. Ale to
je uz opravdu asi nejaka singularita.
> DBD pro nektere databaze (Oracle, PostgreSQL) umi v pripade, ze
> kodovani klienta databazoveho spojeni je UTF-8, vratit retezcova data
> jiz decodovana do znaku, takze tam to pak funguje transparentne. Pokud
> Vam databaze vraci ISO-8859-2 (a nejde ji presvedcit, aby vracela
> UTF-8 (bez ohledu na to, ze data jsou ulozena v cemkoli)), je ten
> rucni decode asi jedina cesta.
>
Peesvedcovat databazi jsem zatim nezkousel, protoze za uzke misto zatim
povazuji DBI (testuji na mysql, ma-li to vyznam pro popis chovani). Neni
mi moc jasne, jak DBI predhodi perlu znaky v iso-8859-2 a pri zapnutem use
encoding 'iso-8859-2' tak, ze si perl mysli, ze jsou v utf.
--
Ondrej Koala Vacha
Další informace o konferenci Perl