Portál AbcLinuxu, 9. května 2025 21:11
#!/usr/bin/perl
use XML::Simple;
use Data::Dumper;
my $xs = XML::Simple->new(NumericEscape => 0);
my $ref = $xs->XMLin('benzina2012-format.xml');
print Dumper($ref);
vše funguje dobře, ale znaky s diakritikou to konvertuje do podoby: \x{fd} \x{ed} apod. Nepomáhá ani nastavit NumericEscape.
use utf8;
use encoding 'utf8';
my $pokus = "nazdar á éř\x{20AC}\n";
print $pokus;
Ovšem XML::Simple, přestože tvrdí, že UTF zpracovává, načte soubor s hlavičkou ...encoding="UTF-8"... tak, ten Dumper vyjede diakritiku ve tvaru \x... sakra, není ten problém v tom Dumperu?
use Data::Dumper; $Data::Dumper::Useqq = 1; { no warnings 'redefine'; sub Data::Dumper::qquote { my $s = shift; $s =~ s|\\|\\\\|g; $s =~ s|'|\\'|g; return "'$s'"; } }
Pure Perl version of "Data::Dumper" escapes UTF-8 strings
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.