我的 Java EE Web 应用程序使用 XSLT 转换来生成 CSV 报告。
如果我指定“UTF-16”作为 XSLT 上的编码(这似乎是处理 XML 中重音字符的唯一方法),那么我会在 CSV 输出的开头得到一个字节顺序标记字符
据我了解,这是正确的行为。问题是,如果在 Excel 中打开 CSV,则此 BOM 字符可见(显示为:þÿ),但如果在正确的文本编辑器中打开它,则不可见;)
如何隐藏或省略此字符,使其在 Excel 中打开文件时不可见?
最佳答案
您忘记指定您正在使用的 XSLT 版本。
如果您使用的是 XSLT 2.0,则可以使用 xsl:output 抑制 BOM元素。例如...
<xsl:output method="xml" byte-order-mark="no" encoding="UTF-16" indent="yes" omit-xml-declaration="yes" />
如果您使用的是 XSLT 1.0 怎么办?
这里有两个选项:
- 升级到 XSLT 2.0
- 将 Excel 升级到 2007(有关原因,请参阅 here)
关于excel - XSLT 输出 BOM 字符在 Excel 中可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13292879/