MIME::Base64::encode a UTF-8
Honza Pazdziora
adelton na fi.muni.cz
Úterý Září 6 14:14:36 MEST 2005
On Tue, Sep 06, 2005 at 11:48:20AM +0200, Aben Siatris wrote:
>
> z toho som vlastne pochopil ze v CGI skripte ktory pracuje so vsetkym
> v utf8, i s vlastnymi zdrojovymi kodmi by som mal pouzit trojicu:
>
> use encoding 'utf8';
> use open ':utf8', ':std';
> use utf8;
use encoding 'utf8' a use utf8 je (pro nase potreby) presne to same.
> - zdrojove kody su utf8
> - vsetky stringy su v utf8
Tohle neni mozne vynutit. String je v utf8 (a chapan jako posloupnost
znaku v utf8) pouze pokud se takovym stal. Stat se tak muze budto
nactenim pres prislusne perlio, nebo pokud byl uveden jako lexikalni
retezec v te casti zdrojaku, ktera je ovladana direktivou use utf8,
nebo pokud byl do retezce znaku zkonvertovat napriklad ze zdrojaku
s use encoding 'iso-8859-2', nebo pokud jste na retezci bajtu zavolal
utf8::decode nebo neco podobneho.
Ale neni mozne rict "jo a mimochodem, v teto casti kodu, at se podivas
na jakoukoli promennou, jakykoli retezec, tak je to retezec znaku
v UTF-8". Znakova semantika je vlastnost kazde jednotlive hodnoty,
nikoli kodu.
> - STDIN, STDOUT a i vsetky citania a zapisy (vratane databazy) su v utf8
Jenze je otazka, co se stane, pokud ja tomu Vasemu CGI skriptu poslu
na vstup posloupnost bajtu, ktera v UTF-8 neni. Podobne i u tech
databazi je treba si overit, ze dtabaze vrati ten retezec spravne
oznaceny jako retezec utf8 znaku (a ne retezec bajtu).
> len mi prekaza ze musim v kazdom natiahnutom scripte (require "script.pm")
> znova pisat "use open ':utf8', ':std'", inak mi dochadza pri STDOUT k "Wide character..."
Netusim, co je require "script.pm" ...
--
------------------------------------------------------------------------
Honza Pazdziora | adelton na fi.muni.cz | http://www.fi.muni.cz/~adelton/
.project: Perl, mod_perl, DBI, Oracle, large Web systems, XML/XSL, ...
Only self-confident people can be simple.
Další informace o konferenci Perl