我们公司希望将我们托管的所有站点从 Latin-1 转换为 UTF-8。经过一番谷歌搜索后,我们的 Perl 脚本几乎完成了。现在唯一缺少的是 XML 文件。
将 XML 从 Latin-1 转换为 UTF-8 的最佳方法是什么?它是否有用?
我问是因为我们对此不确定,因为 Google 上的大多数条目都解释了如何做完全相反的事情。甚至有人说 utf8 可能会导致 XML 出现问题。您能就整个 XML 编码问题给我们讲讲吗?
最佳答案
您要转换什么?数据或 XML 标记或其他什么?
我认为您只需要将其读作 Latin-1 并将其重写为 UTF-8,除非您的源代码做了一些非常奇怪的事情。解码和编码发生在文件句柄级别。一旦在 Perl 中拥有它,它在内部就已经是 UTF-8 了。
到目前为止你有什么?你有什么问题?
您的情况是否太复杂而不能仅使用 xmllint ?
xmllint --encode utf8 --output filename.xml filename.xml.latin1
如果您正在使用 XML::Parser,请参阅 Juerd's Unicode Advice关于那个模块。
如果您要转换的不仅仅是 XML 文件,iconv可能有帮助:
iconv -f ISO-8859-1 -t UTF-8 filename.txt.latin1 > filename.txt
关于xml - 如何在 Perl 中将 XML 文档从 Latin-1 转换为 UTF-8?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1661922/