【问题标题】:How to make Perl's XML::Libxml serializer to use utf-8 encoding?如何使 Perl 的 XML::Libxml 序列化程序使用 utf-8 编码?
【发布时间】:2019-02-12 00:50:09
【问题描述】:
我想用 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);
【问题讨论】:
标签:
xml
perl
serialization
utf-8
【解决方案1】:
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);