2013-03-07 72 views
1

這是XML:XSLT轉換HTML編碼UTF-8

<?xml version="1.0" encoding="UTF-8"?> 
<title>中文字Chinese charactors 1234</title> 

這是XSLT:

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions"> 
    <xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes"/> 
    <xsl:template match="/"> 
    <xsl:value-of select="title"/> 
    </xsl:template> 
</xsl:stylesheet> 

但輸出似乎編碼誤差如下:

銝剜��hinese charactors 1234 

我確定編碼是使用「Unicode UTF-8」 我使用的軟件是Altova XMLSpy 爲什麼會發生這種情況以及如何解決,非常感謝您的幫助。 :)

+0

'中文字符'表明XML文件已經有編碼錯誤。修復輸入文件,問題應該消失。 – hakre 2013-03-07 11:32:17

回答

1

不幸的是,編碼錯誤總是發生在系統中的某些部分,因爲您沒有意識到它們是相關的,所以您不必介紹這些錯誤。

首先,檢查XSLT處理器是否正在進行序列化(例如,不是將結果樹寫入DOM),並且序列化是針對二進制輸出目標而不是字符目標。然後檢查這個二進制目標中的實際字節。消除所有出錯的可能性,正如你在解碼這些字節時顯示它們一樣,而不是在字節本身。

+0

非常感謝你,處理器正在編碼到另一種語言,這是問題的根源。 – 2013-03-09 15:30:42