xslt - 不间断空格 (" ") 在 IE9 和 IE11 中进行 XSLT 转换时未正确转换

标签 xslt browser cross-browser

我们是做客户端的XSL transformation在文档上使用 ISO-8859-1编码。在 IE7 中工作正常和 IE8 .但是,当我们在 IE9 中运行时, IE11实际转换工作完美,但在转换中不再保留不间断空格(“ ”)。

代替不间断空格,它放入“replacement character ”(呈现为 question mark inside a dark diamond )。

如果我们翻到 Compatibility Mode ,不间断空间作为转换的一部分被正确呈现。
这似乎是 IE9 中 XSL 处理器的一个错误——不间断空格应该正确转换。

如果有办法解决这个问题?

下图是IE9替换字符的图像和 IE11 .

image displayed instead of space

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 - 不间断空格 ("&#xA0;") 在 IE9 和 IE11 中进行 XSLT 转换时未正确转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33824463/

相关文章:

javascript - Promise.defer() 浏览器支持

xml - 在 XSLT 中添加/减去时间

php检测浏览器

xml - 使用 XSLT 删除 XML 节点

javascript - 在Javascript中访问表的行元素

internet-explorer - 在 Internet Explorer 中使用同步可插入协议(protocol)的自定义 url 协议(protocol)的最大长度是多少?

c# - 为什么 'innerhtml' 对于 'select' 标签不能正常工作

javascript - Chrome : Javascript-Window. showModal 对话框不支持?

xslt - 将大表拆分为几个小表

c++ - 哪些脚本语言可用于 msxml4.dll xsl 转换?