У меня есть xml-файл, который я хочу разобрать:
<?xml version="1.0" encoding="UTF-8" ?>
<tag>û</tag>
Он отлично разбирается firefox. Но XML::Simple искажает некоторые данные. У меня есть такая программа на Perl:
my $content = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n";
$content .= "<tag>\x{c3}\x{bb}</tag>\n";
print "input:\n$content\n";
my $xml = new XML::Simple;
my $data = $xml->XMLin($content, KeepRoot => 1);
print "data:\n";
print Dumper $data;
и получить:
input:
<?xml version="1.0" encoding="UTF-8" ?>
<tag>û</tag>
data:
$VAR1 = {
'tag' => "\x{fb}"
};
это не похоже на то, что я ожидал. Я думаю, что есть некоторые проблемы с кодировкой. Я делаю что-то неправильно?
UPD: Я думал, что XMLin возвращает текст в utf-8 (на вход). Только что добавленное
encode_utf8($data->{'tag'});
и это сработало