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