dom4j解析xml遇中文,加载报错问题
来源:互联网 发布:qt5.8连接mysql数据库 编辑:程序博客网 时间:2024/05/17 04:59
dom4j解析xml遇中文,加载报错问题。错误信息为:org.xml.sax.SAXParseException: An invalid XML character (Unicode: 0xdd26) was found in the element content of the document.
举个最简答的例子,D:/log/test.xml 文件为GBK编码,内容如下:
public class XmlTest {public static void main(String[] args) {SAXReader saxReader = new SAXReader();String fileName = "D:\\log\\test.xml";File file = new File(fileName);Document document = null;try { if (fileName.endsWith(".xml.gz")) { document = saxReader.read(new InputStreamReader(new GZIPInputStream(new FileInputStream(file)))); } else { document = saxReader.read(new FileReader(file)); //document = saxReader.read(new BufferedInputStream(new FileInputStream(file))); } Element root = document.getRootElement(); System.out.println(root.asXML());} catch (Exception e){e.printStackTrace();}}}如果XmlTest类为UTF-8编码的话,就会报错:An invalid XML character (Unicode: 0xdd26) was found in the element content of the document.
而如果XmlTest类为GBK编码的话,就没有问题。
原因是FileReader读取文件,进行字节到字符转化的时候,如果没有指定编码,会默认使用本地环境的编码。
所以dom4j加载xml文件时,建议使用saxReader.read(new BufferedInputStream(new FileInputStream(file)));
或者saxReader.read(file); 而避免使用FileReader或BufferedReader。
阅读全文
0 0
- dom4j解析xml遇中文,加载报错问题
- 用Dom4j解析XML及中文问题
- 用Dom4j解析XML及中文问题
- 用Dom4j解析XML及中文问题
- 用Dom4j解析XML及中文问题
- 用Dom4j解析XML及中文问题
- 用Dom4j解析XML及中文问题
- 用Dom4j解析XML及中文问题[转]
- 用Dom4j解析XML及中文问题(一)
- 用Dom4j解析XML及中文问题(二)
- 用Dom4j解析XML及中文问题(三)
- ERROR:使用dom4j解析xml文件遇到中文路径问题
- dom4j生成xml文件,解析后出现中文乱码问题
- dom4j生成xml中文问题
- Dom4j解析XML时中文路径解决方案
- dom4j中生成xml的中文问题
- dom4j解析xml时遇到的问题
- Dom4j方式解析XML乱码问题详解
- jsp中取值方式--${param.name }
- python踩过的一些坑
- 【java】获取当前时间currentTimeMillis()
- LLVM SSA 介绍
- 转:HttpServletRequest介绍
- dom4j解析xml遇中文,加载报错问题
- 最新技术
- 学生成绩之和
- Maven学习笔记(七)——Maven工程的继承
- Selenium Webdriver学习记录(一):环境搭建(Java+Maven+Eclipse+Selenium3.x)+第一个测试demo+部分问题解决
- GeoServer发布PostGIS数据
- 查询pci卡支持的特性
- AndroidStudio的 Caused by java.lang.ClassNotFoundException Didn't find class com.gizwits.opensource.a
- ccache 优化C++编译速度