perl XML::LibXML utf8 编码

perl XML::LibXML utf8 encoding

我正在使用 perl 模块 XML::LibXML。

XML::LibXML 获取字符串,其中包含使用 utf8 编码的整个 xml 文件。 我使用 findnodestextContent 从 xml 获取信息。 但是当我尝试使用 charset=UTF-8 将它们打印到 HTML 页面时,它带有像“�”这样的坏字符。 当我不在 html 页面的头部使用 charset=UTF-8 时,它是正确的,但我手动打印的其余页面是错误的。 你能帮我弄清楚吗?

感谢您的建议。

确保您的脚本顶部有:

use utf8;
binmode $_, ":utf8" for qw/STDOUT STDIN STDERR/;

textContent returns "decoded" 形式的文本(Unicode 代码点)。文件句柄需要字节,因此您需要将文本编码为字节。您可以使用

指示 Perl 为您这样做
use open ':std', ':encoding(UTF-8)';