如何对Perl字符串进行编码,以便将其放入XML文档中?

如何对Perl字符串进行编码,以便将其放入XML文档中?,xml,perl,encoding,character-encoding,Xml,Perl,Encoding,Character Encoding,我对perl XML库不太熟悉(实际上,我在理解编码方面非常差劲),我所做的只是获取一个可能包含“a”等字符的字符串并将其放入XML文件中,但当我打开该文件时,在包含此类字符的行中出现编码错误 所以我只需要一种轻量级的方法来获取字符串并将其编码为XML。您的XML应该指定UTF-8编码。例如: <?xml version="1.0" encoding="UTF-8" ?> 网站上有很多很好的信息 Perl程序还应将其输出文件句柄设置为UTF-8编码,以便正确写入数据。例如,请参

我对perl XML库不太熟悉(实际上,我在理解编码方面非常差劲),我所做的只是获取一个可能包含“a”等字符的字符串并将其放入XML文件中,但当我打开该文件时,在包含此类字符的行中出现编码错误


所以我只需要一种轻量级的方法来获取字符串并将其编码为XML。

您的XML应该指定UTF-8编码。例如:

<?xml version="1.0" encoding="UTF-8" ?>

网站上有很多很好的信息

Perl程序还应将其输出文件句柄设置为UTF-8编码,以便正确写入数据。例如,请参见perl文档

唯一需要的特定于XML的转义是XML保留字符。请参阅Stackoverflow上的


您可以使用Perl或类似的模块来转义特定于XML的字符

您的XML应该指定UTF-8编码。例如:

<?xml version="1.0" encoding="UTF-8" ?>

网站上有很多很好的信息

Perl程序还应将其输出文件句柄设置为UTF-8编码,以便正确写入数据。例如,请参见perl文档

唯一需要的特定于XML的转义是XML保留字符。请参阅Stackoverflow上的

您可以使用Perl或类似的模块来转义特定于XML的字符,例如使用,这是XML的标准大锤。不是轻量级的,但您的问题实际上是一个熟悉的钉子,至少我们也没有花太多时间编写代码

use XML::LibXML ();
XML::LibXML::Document->new('1.0', 'UTF-8')->createTextNode($text)->toString; # returns properly encoded fragment
请参阅写入文件的方法。

示例使用,这是XML的标准大锤。不是轻量级的,但您的问题实际上是一个熟悉的钉子,至少我们也没有花太多时间编写代码

use XML::LibXML ();
XML::LibXML::Document->new('1.0', 'UTF-8')->createTextNode($text)->toString; # returns properly encoded fragment

请参阅写入文件的方法。

我无法获得答案2。尝试此操作,它会生成表示“格式不正确(无效令牌)”的XML:


我无法得到答案2。尝试此操作,它会生成表示“格式不正确(无效令牌)”的XML:


答案可能会好得多:① 草率的超文本拷贝(使用“此处”,贫乏的链接文本)。② 潜在的混淆信息:
使用utf8只在告诉Perl程序员已经用UTF-8编码了Perl源代码时才需要。这是一个不同于使用问题中提出的编码编写文件的概念。③ 术语不准确:分隔符需要转义(XML§4.6)。④ 模块缺少永久链接。我已经修复了所有这些。我认为您忽略了最大的问题:您不应该手工编写XML,所以您根本不需要考虑这个问题。使用能为您完成所有工作的模块。:)哦,再多做一点宣传,你也可以解决问题:)答案可能会好得多:① 草率的超文本拷贝(使用“此处”,贫乏的链接文本)。② 潜在的混淆信息:
使用utf8只在告诉Perl程序员已经用UTF-8编码了Perl源代码时才需要。这是一个不同于使用问题中提出的编码编写文件的概念。③ 术语不准确:分隔符需要转义(XML§4.6)。④ 模块缺少永久链接。我已经修复了所有这些。我认为您忽略了最大的问题:您不应该手工编写XML,所以您根本不需要考虑这个问题。使用能为您完成所有工作的模块。:)哦,再多做一点宣传,你也可以解决问题:)