如何对 Perl 字符串进行编码以便将其放入 XML 文档中?
我对 perl XML 库不太熟悉(实际上,我对一般编码的理解真的很糟糕),我所做的就是获取一个可能包含“à”等字符的字符串并将其放入 XML 文件中,但是当我打开文件时,包含此类字符的行出现编码错误。
所以我只需要一种轻量级的方法来获取字符串并将其编码为 XML。
I'm not too fluent with the perl XML libraries (actually, I really suck at understanding encoding in general), all I'm doing is taking a string that possibly has characters such as "à" and putting it in an XML file, but when I open the file, I get an encoding error at the line containing such a character.
So I just need a lightweight way to take a string and encode it for XML.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您的 XML 应指定 UTF-8 编码。例如:
UTF-8 和 Unicode 标准 上有很多有用的信息。
您的 Perl 程序还应该将其输出文件句柄设置为 UTF-8 编码,以便正确写入数据。例如,请参阅 open 的 Perl 文档。
您唯一需要的特定于 XML 的转义是 XML 保留字符。请参阅 Stackoverflow 上的在哪里可以获得 XML 文档转义字符的列表?。
您可以使用 Perl 的 XML::Code 或类似的模块来转义 XML 特定的字符
Your XML should specify UTF-8 encoding. For example:
There's a lot of good information at UTF-8 and Unicode Standards.
Your Perl program should also be set its output filehandle to the UTF-8 encoding so it writes the data correctly. See the perl documentation for open, for instance.
The only XML-specific escaping you need is for the XML reserved characters. See Where can I get a list of the XML document escape characters? on Stackoverflow.
You can use Perl's XML::Code or a similar module to escape the XML-specific chars
使用 LibXML 的示例,这是 XML 的标准大锤。不是轻量级的,但你的问题确实是一个熟悉的钉子,至少我们也没有花太多时间编写代码。
请参阅方法
toFile
以写入文件。Example using LibXML, which is the standard big hammer for XML. Not lightweight, but your problem really is a familiar nail and at least we're not spending much time writing code, either.
See method
toFile
for writing into a file.我无法让答案 2 工作。试试这个,它会生成 XML,其中显示“格式不正确(无效令牌)”:
I couldn't get answer 2 to work. Try this, it produces XML which says "not well-formed (invalid token)":