2010-03-10 95 views

回答

5

要麼解析器設置爲UTF-8,即使文件被其他編碼或文件被聲明爲使用UTF-8,但它確實沒有。

18

最常見的是由於(Latin-x,與Latin-1類似),但解析器認爲它獲得了UTF-8。拉丁文-1字符的某些序列(帶有重音或變音符號的兩個連續字符)形成的東西無效,如UTF-8,特別是基於第一個b yte,第二個字節有意想不到的高位。當某些處理使用Latin-1的轉儲出XML

這可容易地發生,但無論哪種忘記輸出XML聲明(在這種情況下XML解析器必須默認爲UTF-8,按照XML規格),或權利要求它的UTF-8甚至當它不是。

+0

關於如何解決這個問題的任何建議?在使用第三方庫XMLTask定義一個ant任務時遇到了這個問題。 – AgentKnopf 2012-03-27 15:55:23

+0

那很困難;否則通常要做的是爲特定編碼顯式創建一個InputStreamReader,然後將其提供給XML解析器。但不知道如何處理Ant ......除了修復XML文件本身,如果可能的話。 – StaxMan 2012-03-27 17:52:58

+0

我想出了這個問題 - 在我的一個xml中,我有一個變音(ä,ö,ü),當我將xml文件轉換爲不同格式時,它會以某種方式搞砸了。一旦我刪除了變音符,它就解決了。 – AgentKnopf 2012-03-27 18:10:59

2

您可以嘗試將String.getBytes()使用的默認字符編碼更改爲utf-8。使用VM選項-Dfile.encoding = utf-8。

2

我有同樣的問題。我的問題是我創建了一個新的XML文件與jdom和FileWriter(xmlFile)。 FileWriter無法創建UTF-8文件。 而是使用FileOutputStream(xmlFile)解決了它。

1

對於那些仍然有這樣的錯誤。

因爲UTF-8被用來檢查你的XML文檔的任何拉丁字母左右: 我有同樣的問題,究其原因,我有這個:

<n:name>Åke Jógvan Øyvind</n:name> 

希望這有助於

0

當我試圖將我的.xml文件導入到我的java工具中時,我也遇到了同樣的問題。我找到了一個很好的解決方案: 1.用Notepad ++打開.xml文件,然後將.xml文件保存爲.rtf文件。然後在寫字板應用程序中打開此文件。 2.將.rtf文件保存爲.txt文件,然後用記事本打開它,並將其另存爲.xml文件。在記事本中保存時,在彈出窗口的末尾附近,確保選擇「編碼:UTF-8」選項。 它爲我的工作,希望它也對你有用。

相關問題