2009-01-27 111 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