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

时间:2019-02-12 00:50:10

标签: xml perl serialization utf-8

我想使用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 个答案:

答案 0 :(得分:4)

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);