转换perl中的怪异角色

时间:2017-08-04 14:33:42

标签: xml perl

我有以下字符:

SKU

我有以下代码:

E=MC²

出于某种原因,当我尝试在XML中使用它时,它会抛出这个:

$xml.="      <author initial=\"EM\"><![CDATA[E=MC²]]></author>\n";

我正在使用This page contains the following errors: error on line 897 at column 36: Encoding error 来处理XML翻译。

我需要在解决此问题的perl代码中执行哪些操作?

我不知道如何对此进行编码,因为即时通讯仍然是相当新的,我会发布我已做过的事情

1 个答案:

答案 0 :(得分:1)

将编码信息添加到XML字符串的开头:

<强> xml_example.pl

#!/usr/bin/env perl

use warnings;
use strict;
use XML::LibXML;

my $xml = '<?xml version="1.0" encoding="utf8"?>' . "\n";
$xml   .= "<author initial=\"EM\"><![CDATA[E=MC²]]></author>\n";

my $dom;
eval {
    $dom = XML::LibXML->load_xml( string => $xml );
};

if ($@) {
    print "ERROR: " . $@;
} else {
    print $dom->toString();
}

<强>输出

<?xml version="1.0" encoding="utf8"?>
<author initial="EM"><![CDATA[E=MC²]]></author>