如何使Perl的XML::Libxml序列化器使用utf-8编码?

3
我想使用XML::LibXML序列化一个XML文件,但它总是将UTF-8字符转换为HTML表示:例如我从“á”得到á等等...
我该如何让它使用UTF-8呢?"最初的回答"
use strict;
use XML::LibXML;
use utf8;

my $str = '<item><name>árvíztűrő tükörfúrógép</name></item>';
my $dom = XML::LibXML->load_xml(string => $str);

print $str."\n";
print $dom->serialize(1);
1个回答

5
my $str = '<?xml version="1.0" encoding="UTF-8"?><item><name>árvíztűrő tükörfúrógép</name></item>';
my $doc = XML::LibXML->load_xml( string => $str );
print $doc->serialize(1);

或者

my $str = '<item><name>árvíztűrő tükörfúrógép</name></item>';
my $doc = XML::LibXML->load_xml( string => $str );
$doc->setEncoding("UTF-8");    
print $doc->serialize(1);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接