XML文档如下,使用GBK编码:
<?xml version="1.0" encoding="GBK"?>
<aaa>
<bbb>测试</bbb>
</aaa>在JBuilder里,使用如下代码访问正常
Document document = null;
try {
File file = new File("C:/test.xml");
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
document = builder.parse(file);
} catch(Exception e) {
e.printStackTrace();
}但是我往工程Required Libraries里添加weblogic.jar (weblogic版本为8)后
document = builder.parse(file)这句报错:
org.xml.sax.SAXParseException: Invalid encoding name "GBK". at weblogic.apache.xerces.parsers.DOMParser.parse(DOMParser.java:271) at weblogic.apache.xerces.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:201) at weblogic.xml.jaxp.RegistryDocumentBuilder.parse(RegistryDocumentBuilder.java:149) at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:151)
<?xml version="1.0" encoding="GBK"?>
<aaa>
<bbb>测试</bbb>
</aaa>在JBuilder里,使用如下代码访问正常
Document document = null;
try {
File file = new File("C:/test.xml");
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
document = builder.parse(file);
} catch(Exception e) {
e.printStackTrace();
}但是我往工程Required Libraries里添加weblogic.jar (weblogic版本为8)后
document = builder.parse(file)这句报错:
org.xml.sax.SAXParseException: Invalid encoding name "GBK". at weblogic.apache.xerces.parsers.DOMParser.parse(DOMParser.java:271) at weblogic.apache.xerces.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:201) at weblogic.xml.jaxp.RegistryDocumentBuilder.parse(RegistryDocumentBuilder.java:149) at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:151)
说了很清楚了呀org.xml.sax.SAXParseException: Invalid encoding name "GBK".<?xml version="1.0" encoding="GBK"?>
改成
<?xml version="1.0" encoding="UTF-8" ?> or 干脆不声明encoding属性。如果是在中文系统下:就改成
<?xml version="1.0" encoding="gb2312" ?> 如果你是改的别人的xml文档,但之前该xml文档是UTF-8/16编码的,
<?xml version="1.0" encoding="gb2312" ?>不能显示中文,因为该文档不是gb2312编码的,虽然你强制申明它要用gb2312编码转换,但gb2312编码机制处理不了UTF-8/16的编码。必须用UTF-8/16编码机制转换
我是调用第三方的webservice获取xml的,无法修改encodingto wingtrace(无心·无梦·无语)
谢谢,我找找看
新建一个文件jaxp.properties
指定javax.xml.parsers.DocumentBuilderFactory=org.apache.crimson.jaxp.DocumentBuilderFactoryImpl
可以解决问题,但感觉很麻烦
能不能在程序里指定,或者解决在xerces下访问GBK的问题?