XML文件中用的是UTF-8编码,可是又包含中文,该怎么解决?
直接解析肯定是不行的,但是如果我先用GBK替换<?xml version="1.0" encoding="UTF-8"?>中的UTF-8的话,仍然会出现org.xml.sax.SAXParseException: An invalid XML character错误。
XML输入:
- XML code
<?xml version="1.0" encoding="UTF-8"?><Files Domain="odpsfile" Path="2008"><File FileTempPath="6c08a588-c245-11dc-958a-d1128874cdde.doc" Index="1" Name="卫生防疫.doc" Title="新建"/></Files>
JAVA代码
- Java code
String input = glwj.replace("UTF-8","GBK");DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();DocumentBuilder documentBuilder = dbf.newDocumentBuilder();Document doc = documentBuilder.parse(StringBufferInputStream(input));
------解决方案--------------------
你是不是文件编码不对...用记事本打开,然后另存看下.
是否是UTF-8,或者如果是ANSI,就一定错了.
如果你的类本身是UTF-8编码,一般不会有问题.
不知道你是jdom,还是dom4j....
------解决方案--------------------
先取到对应节点的值,然后转码
Dom4j为例子
Node node=document.selectSingleNode("/Files/File/@Name");
String text=node.getText();
text=new String(text.getBytes("UTF-8"),"GBK");
------解决方案--------------------
用jdom来试试。
- XML code
<?xml version="1.0" encoding="UTF-8"?><Files Domain="odpsfile" Path="2008"><File FileTempPath="6c08a588-c245-11dc-958a-d1128874cdde.doc" Index="1" Name="卫生防疫.doc" Title="新建"/></Files>