使用dom4j 生成xml UTF-8 編碼錯誤之解決
阿新 • • 發佈:2019-02-12
//檔名稱 String fileName = "test.xml"; // 格式化XML文件 OutputFormat format = OutputFormat.createPrettyPrint(); format.setEncoding("UTF-8"); // 指定XML編碼 //這裡用的是 FileWrite,預設是ANSI XMLWriter writer = new XMLWriter(new FileWrite(new File(fileName)), format); writer.write(document); writer.close();
上面程式碼生成的xml檔案編碼,內容是utf-8的,但檔案格式確是ANSI的,導致格式不統一.
原因分析:
由於FileWriter預設的輸出編碼是ANSI編碼,而Dom4j中的wirte方法提供的內容實際是以UTF-8儲存的,因此造成了包括中文字元的XML檔案無法正常閱讀。
解決方法:
不能使用簡單的FileWriter,而應該是使用一個能指定具體輸出編碼的Writer,在JDK的io包中, OutputStreamWriter可以指定輸出編碼。
正確的程式碼如下:
j
XMLWriter writer = new XMLWriter(new FileOutputStream(new File(fileName)), format); writer.write(document); writer.close();