使用dom4j 生成xml UTF-8 編碼錯誤之解決

		//文件名稱
		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();


發佈了58 篇原創文章 · 獲贊 3 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章