我们是做客户端的XSL transformation
在文档上使用 ISO-8859-1
编码。在 IE7
中工作正常和 IE8
.但是,当我们在 IE9
中运行时, IE11
实际转换工作完美,但在转换中不再保留不间断空格(“ 
”)。
代替不间断空格,它放入“replacement character
”(呈现为 question mark inside a dark diamond
)。
如果我们翻到 Compatibility Mode
,不间断空间作为转换的一部分被正确呈现。
这似乎是 IE9 中 XSL 处理器的一个错误——不间断空格应该正确转换。
如果有办法解决这个问题?
下图是IE9
替换字符的图像和 IE11
.
Warning/error messages from IE11 console -
HTML1300: Navigation occurred.
File: Test
XML5001: Applying Integrated XSLT Handling.
HTML1524: Invalid HTML5 DOCTYPE. Consider using the interoperable form "<!DOCTYPE html>".
File: Test, Line: 3, Column: 1
HTML1114: Codepage utf-8 from (10) overrides conflicting codepage iso-8859-1 from (META tag)
File: Test
HTML1504: Unexpected end tag.
File: Test, Line: 380, Column: 1
HTML1504: Unexpected end tag.
File: Test, Line: 381, Column: 1
HTML1504: Unexpected end tag.
File: Test, Line: 476, Column: 1
SEC7115: :visited and :link styles can only differ by color. Some styles were not applied to :visited.
File: Test
HTML1114: Codepage utf-8 from (10) overrides conflicting codepage iso-8859-1 from (META tag)
不知道为什么 IE11 会覆盖服务器给出的编码。
最佳答案
是编码问题。在我看来,IE10/11 可能在它已经用 ISO-8859-1 编码之后试图用 UTF16 重新编码它。
我认为您最可能的解决方法是包含 <meta charset="ISO-8859-1">
在您的 <head>
HTML 中的标记。我相信所有版本的 MSIE 都会尊重这一点(或者如果他们忽略它,至少默认它)。我之前在不同的浏览器相关上下文中遇到过类似的问题,并解决了它。
关于xslt - 不间断空格 (" ") 在 IE9 和 IE11 中进行 XSLT 转换时未正确转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33824463/