我在XML文件上做了一些操作(没什么重要的),在这种情况下XSL非常适用。 但是,我的输入文件是用UTF-8编码的,转换后的文件必须用iso-8859-1编码。 (我也不控制输入文件的编码)
一切顺利,除了utf-8中存在的一些特殊字符而不是iso-8859中的特殊字符在输出文件中被转义。
例如我有
<text>some text with a € character</text>
转化为
<text>some text with a € character</text>
输出文件中的“€”对我来说是一个问题。
由于我们必须对那些不在ISO中的特殊字符做一些事情,我首先想到用replace函数手动转换它们:replace(。,'€','euros') 但是utf-8中有这么多字符,它们不是iso,它很快就很无聊......而且很慢!
你有更好的解决方案吗? (假设我们可以删除这些字符或将它们转换为任何可行的iso字符)
提前致谢
答案 0 :(得分:1)
你有吗
<xsl:output encoding="iso-8859-1" />
到位了?
因为那应该是你所需要的,真的。如果您的XSL处理器没有正确地将字符转换为目标编码,那么它就会被破坏,您需要使用另一个。
提示
Windows-1252
是人们真正在他们说ISO-8859-1
时的意思。仔细检查是否适用于您。两个之间存在细微差别(特别是关于欧元符号,ISO-8859-1
中不存在,但Windows-1252
和ISO-8859-15
中存在) <?xml version="1.0" encoding="iso-8859-1"?>
时,都会假定为UTF-8编码。每当不 UTF-8编码时,请务必在文件顶部放置声明。