dom4j解析xml文件,xml的编码是utf-8,里边的中文解析出来是乱码,怎么解决? 文件用ie打开是正常的。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dom4j解析xml文件,xml的编码是utf-8,里边的中文解析出来是乱码,怎么解决? 文件用ie打开是正常的。相关的知识,希望对你有一定的参考价值。
不太清楚在哪需要转码,求助!!
照着1楼的方法弄了下,重新保存成txt再解析也是乱码。
我已经试出来了,用saxReader.read(FileInputStream)可以解决
char* xmlBuff; //保存XML的数据
int unicodeNum = MultiByteToWideChar(CP_UTF8, 0, xmlBuff, -1, null, 0); //预先得到转换后的长度
wchar_t* unicodeArr = new wchar_t[unicodeNUm + 1];
memset(unicodeArr,0,(unicodeNUm+1)*sizeof(wchar_t));
MultiByteToWideChar( CP_UTF8, 0, xmlBuff, -1, (LPWSTR)unicodeArr, unicodeNUm); 参考技术A OutputFormat format=OutputFormat.createPrettyPrint();
format.setEncoding("utf-8");
XMLWriter writer = new XMLWriter( new FileWriter(new File("另存名.txt")),format);
writer.write(document);
writer.close();
晕,用那个解决了?那说明你一开始就没有解析正确啊!!!!
SAXReader类的读取是第一步就要的.... 参考技术B 从xml读取出来的时候再进行一次转码就行了
xml文件的语法
xml文件的语法1)文档声明
<?xml version="1.0" 指明XML文件的版本号,XML解析器就会采用对应的版本进行解析
encoding="UTF-8" 指明XML文件中的中文采用UTF-8编码,在IDE工具中,指明该文件的保存编码方式?
standalone="yes或no" 指明XML文件需要初其它文件DTD约束的话,就是no,如果单独的XML文件,就是yes>
各浏览器中的XML解析器只对XML文件的语法检测
2)元素
1)通常元素都有开始和结束标签,但也可以使用空标签,即<a></a>=<a/>
2)XML中标签嵌入顺序必须一致,且字符大小写不一致
3)程序会将标签内的空白字符当作有效字符对待
3)属性(附加信息的描述)
1)属性由属性名和属性值组成,属性值由定界符""或‘组合
2)当一个事务必须与对象绑定在一起,没有该对象,该事务就没有意义,此时该事务就应成为对象的属性。
4)注释(不能随意嵌套)
<?xml version="1.0" encoding="UTF-8"?>
<root>
以上是关于dom4j解析xml文件,xml的编码是utf-8,里边的中文解析出来是乱码,怎么解决? 文件用ie打开是正常的。的主要内容,如果未能解决你的问题,请参考以下文章