我有一个包含以下内容的test.xml文件:
<div value="éclair">éclair</div>
我正在使用以下 perl 代码来提取和打印它:
use strict;
use XML::LibXML;
use XML::LibXML::Reader;
use utf8;
my $parser = XML::LibXML->new();
open my $fh, "<", "test.xml";
my $reader = XML::LibXML::Reader->new(IO => $fh, recover => 1, suppress_errors => 1, huge => 1000000000);
while ($reader->read) {
next unless $reader->nodeType == XML::LibXML::Reader->XML_READER_TYPE_ELEMENT;
next unless $reader->name eq "div";
my $html = $reader->readOuterXml;
my $doc = $parser->load_xml(string => $html);
print $doc->toString() . "\n";
}
但是这个打印出来:
<?xml version="1.0"?>
<div value="éclair">éclair</div>
é
字符已被编码为é
有没有办法避免这个编码过程?或者我如何在 perl 中将
é
解码为 é
?