utf8 data, il2 skript a Cz::Cstocs
Honza Pazdziora
adelton na fi.muni.cz
Čtvrtek Leden 4 17:45:24 MET 2007
On Thu, Jan 04, 2007 at 12:43:55AM +0100, Pavel Smerk wrote:
>
> V perlrun se pise "The #! line is always examined for switches as the line
> is being parsed." Asi mam nejak zatmeno, ale chapu to tak, ze se ty switche
> na prvnim radku skriptu pouziji, jako by byly na prikazove radce. Jak je pak
> ale mozne tohle:
>
> $ cat test.pl
> #!/usr/bin/perl -CSD
> use encoding 'latin2';
> while (<>) { print if /á/; }
> $ echo -e 'á\na' | cstocs il2 utf8 | perl test.pl | cstocs utf8 il2
> $ echo -e 'á\na' | cstocs il2 utf8 | perl -CSD test.pl | cstocs utf8 il2
> á
> $
>
> Proc ty switche v prvnim pripade ignoruje?
Předpokládám, že to je featura, nebo tak.
> A dale, jak se spravne rekne, ze mam data (vstupy/vystupy) v utf8, ale
> skript v il2? Podle perluniintro jsem pouzil -CSD a use encoding 'latin2'.
> Jenze pak se mi nedari pouzit Cz::Cstocs:
>
> $ perl -e 'use Cz::Cstocs "il2_ascii"; print il2_ascii("ěščřžýáíé"), "\n"'
> escrzyaie
> $ perl -e 'use encoding "latin2"; use Cz::Cstocs "il2_ascii"; print il2_ascii("ěščřžýáíé"), "\n"'
> yaie
> $
>
> Ja bych potreboval vysledek jako v prvnim pripade i pro use encoding
> "latin2" (pokud teda se tak spravne rika, ze skript je v tomto kodovani).
> Nebo to mam do ascii prekodovavat nejak jinak? Jak (z Encode::encode/from_to
> jsem to nedokazal vyrazit)?
Cz::cstocs jede v bajtové sémantice, nikoli ve znakové. Jakmile řekneš
use encoding, implikuješ pro literální řetězce znakovou sémantiku.
Používej všude UTF-8.
--
------------------------------------------------------------------------
Honza Pazdziora | adelton na fi.muni.cz | http://www.fi.muni.cz/~adelton/
.project: Perl, C, Red Hat Network, IPv6, VoIP
Only self-confident people can be simple.
Další informace o konferenci Perl