org.dom4j.DocumentException: Invalid byte 1 of 1-byte UTF-8 sequence.
查了一下網路之後,得到的結果是因為讓 dom4j 的 SAXReader 讀取 XML 時
XML 在標頭宣告自己的編碼是 UTF-8,但實際上檔案儲存時並不是用 UTF-8。
後來發現我用 NotePad++ 儲存的 XML 檔忘了選編碼了
要在 NotePad++ 的工具列上選 [編碼] → [編譯成 UTF-8 碼] 或者 [編譯成 UTF-8 碼 (檔首無 BOM)]。
如果 XML 是用程式碼產生的,可以參考以下的寫法強制指定輸出的檔案編碼:
File outputFile = new File("output.xml"); OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(outputFile , "UTF-8");
沒有留言:
張貼留言