我想打印一个XML文档,而不需要将其中包含的所有unicode都缩减为丑陋的NCR。这是一个示例:
use XML::LibXML;
my $parser = XML::LibXML->new();
my $doc = $parser->load_xml(string => '<xml>FULL WIDTH</xml>');
print $doc->toString();
这将打印以下内容:
<?xml version="1.0"?>
<xml>FULL WIDTH</xml>
非常非常难看,很难阅读(除非在浏览器或其他地方查看)。
如何使文档打印真实字符,并具有utf-8(或任何其他编码)声明?
XML::LibXML::Parser返回的对象类型是XML::LibXML::Document,它有一个setEncoding
方法:
$doc->setEncoding('utf-8');
现在脚本打印如下:
<?xml version="1.0" encoding="utf-8"?>
<xml>FULL WIDTH</xml>