2009-01-27 103 views
2

我试图运行一个XSLT转换,但像'ëï'这样的字符被字面'?'替换。在输出中(我用十六进制编辑器检查过)。源文件具有正确的字符,样式表有:XSLT编码问题,结果中的questionmarks

<xsl:output encoding="UTF-8" indent="yes" method="xml"/> 

我还缺少什么?

我使用撒克逊作为变压器,如果这件事。

回答

2

这个问题很可能是您调用变压器的方式。我的猜测是,它会工作正常,如果你打电话使用java -jar saxon.jar ...

一般来说,当你使用带有InputStream/OutputStream的XML工具时,那么工具将确保编码是正确的。

当您使用Streams和Writers的混合时,您必须确保从一个到另一个的编码与您告诉XSLT处理器生成的内容相匹配。总是明确地设置编码。可能有默认值,但是对于编码来说,它们往往是错误的。

+0

什么是正确的方法?我目前正在做`TransformerFactory.newInstance()。newTransformer()`和`transformer.transform(source,result)`。 – Sietse 2009-01-27 10:34:01