MIME::Base64::encode a UTF-8

Aben Siatris aben na webcom.sk
Středa Září 7 09:19:28 MEST 2005


Dňa Utorok 06 September 2005 17:38 Honza Pazdziora napísal:

> > no iste ked davate to "use utf8;" az ked mate vytvorenu premennu.
> > hovoril som o kazdej novej vytvorenej premennej v tej casti kodu v ktorej plati
> > "use utf8;"
> 
> Promenna $y je definovana az pote, co zacne platit use utf8.

to je sice pravda, ale mimo bloku utf8 a to je podstatne.
jednoduchy test vychadzajuci z vasho kodu.

#!/usr/bin/perl

my $x = 'křížala';
use utf8;
my $y = 'křížala';


if (utf8::is_utf8($x))
{
	print "x je utf8\n";
}

if (utf8::is_utf8($y))
{
	print "y je utf8\n";
}

> > > To, ze nekde udelate nejake require, prece name vliv na to, jaka je
> > > nastavena I/O vrstva na filehandlu ...
> > 
> > faktom ale je ze pokial mam script
> > main.pl v ktorom je:
> > 
> > use encoding 'utf8';
> > use open ':utf8';
> > use utf8;
> 
> ... use encoding 'utf8' a use utf8 jedno jsou ...

dokaz o opaku:

subor test.pl
#!/usr/bin/perl

use utf8;
#use encoding 'utf8';

require "test.pm";

my $x = 'křížala';
if (utf8::is_utf8($x)){print "x je utf8\n";}

test::echoutf8($x);

subor test.pm
#!/usr/bin/perl

package test;

sub echoutf8
{
	print shift;
}

a potom skuste s odkomentovanim "use encoding 'utf8';"


> > require "test.pl"
> > 
> > v ktorom je:
> > 
> > package test;
> > use encoding 'utf8';
> > use utf8;
> 
> Tohle je zde uplne nepodstatne, protoze v tom kodu neni zadny literal
> (pominu-li to ">test").
ano, use encoding a use utf8 uz netreba nikde pisat znova, chape sa na
cely script




Další informace o konferenci Perl