0

我有一个使用 XSL 用 IE9 打开的 XML 文档。XSL 文件管理显示。该文档可以正常打开。我的 XML 文档包含一些重音字符,这些字符有时通过 XSL 被解释为 HTML 链接元素。然而,那些用重音编写的链接不起作用(从 IE 浏览器显示错误页面),而其他没有重音的链接则可以正常工作。我已经改变了很多次编码以考虑重音字符但没有改变。

XML 包含重音字符,例如

É,é,È,Ê,ê....

请查看 XML 和 XSL 的顶部标题

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="2.0"
xmlns:xsl = "http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="ISO-8859-1" indent="yes"/>
<xsl:template match = "/">
<html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
 ..............
 </head>
 ..............
</html>


 <?xml version="1.0" encoding="ISO-8859-1"?>
 <?xml-stylesheet type='text/xsl' href='style.xsl'?>

我还尝试在 XML 文档中使用“UTF-16”而不是“ISO-8859-1”编码,打开重音链接时错误仍然存​​在。

你能帮我解释一下我写的东西不能按我的意愿工作吗?谢谢

4

1 回答 1

0

没有可重现的示例很难说,但作为猜测,问题可能不在于源 XML 或 XSLT 文件,而是您输出的 HTML 不匹配。IE 可能默认将文件解释为 ISO-8859-1 或 CP-1252,但 XSLT 默认输出 UTF-8 或 UTF-16。如果您很喜欢 ISO-8859-1,请将其添加到您的 XSLT:

<xsl:output encoding="ISO-8859-1"/>

head或者,让您的 XSLT 输出 UTF-8,但通过在结果 HTML 的元素中的某处输出它来让 IE 知道:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
于 2013-07-21T01:18:26.530 回答