我有一个XML文档,它通过使用XSL在IE9中打开。 XSL文件管理显示。这份文件很好。我的XML文档包含一些带重音的字符,有时通过XSL将其解释为HTML Link元素。然而,那些用重音编写的链接不起作用(从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”编码,打开重音链接时错误仍然存在。
你可以帮我解释一下我写的东西是不是按照我的意愿行事吗? 感谢
答案 0 :(得分: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"/>
或者,让你的XSLT输出UTF-8,但是通过在结果HTML的head
元素中输出这个来让IE知道:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />