Portál AbcLinuxu, 17. listopadu 2025 19:36
#!/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.