1

我想打印一个 XML 文档,而不会将其中包含的所有 unicode 减少为丑陋的 NCR。这是一个示例:

use XML::LibXML;
my $parser = XML::LibXML->new();
my $doc = $parser->load_xml(string => '<xml>FULL WIDTH&lt;/xml>');
print $doc->toString();

这将打印以下内容:

<?xml version="1.0"?>
<xml>&#xFF26;&#xFF35;&#xFF2C;&#xFF2C; &#xFF37;&#xFF29;&#xFF24;&#xFF34;&#xFF28;</xml>

非常非常难看且难以阅读(除非在浏览器或其他工具中查看)。

如何让文档打印真实字符,并声明 utf-8(或任何其他编码)?

4

1 回答 1

3

XML::LibXML::Parser 返回的对象类型是 XML::LibXML::Document,它有一个setEncoding方法:

$doc->setEncoding('utf-8');

现在脚本打印这个:

<?xml version="1.0" encoding="utf-8"?>
<xml>FULL WIDTH&lt;/xml>
于 2013-08-21T02:16:26.500 回答