Tisk v unicode
Ondrej Koala Vacha
koala na vju.cz
Pátek Květen 21 22:36:10 MEST 2004
On Fri, 21 May 2004, Ondrej Koala Vacha wrote:
> On Thu, 20 May 2004, Ondrej Koala Vacha wrote:
>
> > On Tue, 18 May 2004, Honza Pazdziora wrote:
> >
> > > On Mon, May 10, 2004 at 12:26:06PM +0200, Ondrej Koala Vacha wrote:
> > > > On Mon, 10 May 2004, Ondrej Koala Vacha wrote:
> > > >
> > > > > S natvrdo pridanym
> > > > > use encoding 'latin2';
> > > > > use open ":std",
> > > > > IN => ":encoding(iso-8859-2)",
> > > > > OUT => ":encoding(iso-8859-2)";
> > > > >
> > > >
>
>
> Mam dojem, ze unicode zhadam neni konce :(
>
Tak abych si jen nestezoval. Rozdil mezi STDOUT a STDERR sice je, ac by
asi nemel byt (nevim, rad se to dozvim), ale ten perl panic se da
odstranit *nezavolanim* binmode(STDOUT,...) v open.pm. Tady je patch:
---------------------------------------------------------------------
--- /usr/lib/perl5/5.8.0/open.pm 2003-03-13 23:33:24.000000000 +0100
+++ open.pm 2004-05-21 22:26:33.000000000 +0200
@@ -130,7 +130,6 @@
binmode(STDOUT, ":utf8");
binmode(STDERR, ":utf8");
} elsif ($out =~ /(\w+\(.+\))/) {
- binmode(STDOUT, ":$1");
binmode(STDERR, ":$1");
}
}
---------------------------------------------------------------------
Pravdepodobne to je toliko obejiti, nikoliv reseni problemu.
Cely fungujici priklad tedy je:
--------------------------------------
#!/usr/local/bin/perl -w
use encoding 'latin2';
use open ":std",
IN => ":encoding(iso-8859-2)",
OUT => ":encoding(iso-8859-2)";
my $a="ježeček";
print "main STDOUT $a\n";
print STDERR "main STDERR $a\n";
--------------------------------------
main STDOUT ježeček
main STDERR ježeček
;)
s pranim hezkeho vikendu
--
Ondrej Koala Vacha
Další informace o konferenci Perl