XML中UTF-8表示的问题

时间:2015-06-06 11:00:05

标签: html xml xslt utf-8

我使用 的UTF-8字节代码表示在XSL中遇到了各种问题。我使用的是Saxon HE9.5.1.4

输入文件是使用tidy转换为XHTML的HTML文件。它是UTF-8并包含字节序列0xC2 0xA0,我在EMACS中使用十六进制模式验证。在EMACS中查看HTML文件会将字符对显示为灰色(非黑色)下划线。它显示为在浏览器(Firefox或Chrome)中查看文件的空间。

XSLT使用<xsl:strip-space elements="*"/>。这会消除&nbsp,但保留c2a0完整。我能做什么会导致这种行为?为了理解这两点,在执行转换之前,应该通过XSLT处理器删除它们。

我还试图在我的XSLT中过滤这些字符,但我遇到了代表它们的问题。在XPATH中,我可以使用"thing[text()='_'"],其中_是使用EMACS从XHTML文件复制的,并且它可以工作。我觉得这太脆弱了,因为这些不是普通的下划线字符并不明显。我尝试使用thing[text()=codepoints-to-string((194, 160))],但它与任何内容都不匹配。 (194, 160)是0xC2 0xA0的十进制字节对。

所以这个不寻常的字节序列在XSLT文件中表现得很奇怪。有人之前遇到过这个并且知道该怎么做吗?

0 个答案:

没有答案