jDom 和dom4j 输出的中文乱码的解决方案
来源:互联网 发布:oracle的sql语句 编辑:程序博客网 时间:2024/05/18 01:55
自己碰到的问题:
原错误代码:
- Document
document = DocumentHelper.createDocument(); - document.setXMLEncoding("UTF-8");
- docElement.addAttribute("DOC_TYPE",
"中文"); - String
docStr = document.asXML(); - FileUtils.writeStringToFile(new
File(fileName ".xml"),+ docStr);
在Eclipse下执行时无乱码,但使用bat执行时出现了乱码。(不知为什么Eclipse中不出现乱码???)
解决方案:
FileUtils.writeStringToFile(new File(fileName + ".xml"), docStr, "UTF-8")
乱码解决方案:
JDom
现象描述:
完
具体描述:
这给我们一个错觉,两个接口可以任意使用。
首先我们用
然后我们改为
也就是说在控制台的时候一定要用一个
然后我们用
然后我们改为
也就是说在输出文件的时候一定要用一个
疯了吧
因此,对于
测试的
测试代码:
- public
void createXML(String fileName) { -
Document doc = org.dom4j.DocumentHelper.createDocument(); -
Element root = doc.addElement("book"); -
root.addAttribute("name", "我的图书"); -
Element childTmp; -
childTmp = root.addElement("price"); -
childTmp.setText("21.22"); -
Element writer = root.addElement("author"); -
writer.setText("李四"); -
writer.addAttribute("ID", "001"); -
try { -
org.dom4j.io.XMLWriter xmlWriter = new org.dom4j.io.XMLWriter( -
new FileWriter(fileName)); -
xmlWriter.write(doc); -
xmlWriter.close(); -
} -
catch (Exception e) { -
System.out.println(e); -
} -
}
- public
XMLWriter(OutputStream throwsout) UnsupportedEncodingExcep tion { -
//System.out.println("In OutputStream"); -
this.format = DEFAULT_FORMAT; -
this.writer = createWriter(out, format.getEncoding()); -
this.autoFlush = true; -
namespaceStack.push(Namespace.NO_NAMESPACE); -
} -
public XMLWriter(OutputStream throwsout, OutputFormat format) UnsupportedEncodingExcep tion { -
//System.out.println("In OutputStream,OutputFormat"); -
this.format = format; -
this.writer = createWriter(out, format.getEncoding()); -
this.autoFlush = true; -
namespaceStack.push(Namespace.NO_NAMESPACE); -
} -
-
protected Writer throwscreateWriter(OutputStream outStream, String encoding) UnsupportedEncodingExcep tion { -
return new BufferedWriter( -
new OutputStreamWriter( outStream, encoding ) -
); -
}
由上面的代码我们可以看出
- public
void createXML(String fileName) { -
Document doc = org.dom4j.DocumentHelper.createDocument(); -
Element root = doc.addElement("book"); -
root.addAttribute("name", "我的图书"); -
Element childTmp; -
childTmp = root.addElement("price"); -
childTmp.setText("21.22"); -
Element writer = root.addElement("author"); -
writer.setText("李四"); -
writer.addAttribute("ID", "001"); -
try { -
//注意这里的修改 -
org.dom4j.io.XMLWriter xmlWriter = new org.dom4j.io.XMLWriter( -
new FileOutputStream(fileName)); -
xmlWriter.write(doc); -
xmlWriter.close(); -
} -
catch (Exception e) { -
System.out.println(e); -
} -
}
匹配xml中非法字符的正则表达式:[\\x00-\\x08\\x0b-\\x0c\\x0e-\\x1f]
例子:str.replaceAll("[\\x00-\\x08\\x0b-\\x0c\\x0e-\\x1f]", "");
- jDom 和dom4j 输出的中文乱码的解决方案
- jDom 和dom4j 输出的中文乱码的解决方案
- python 输出中文乱码的解决方案
- 解析XML的 - dom4j 和 jdom
- DOM4J的中文乱码问题
- xml的dom4j jdom
- 【原创】JDom输出UTF-8的XML完美解决(中文乱码的原因分析)
- JDom输出UTF-8的XML出现中文乱码完美解决
- 中文乱码的解决方案:
- 使用logstash输出到elasticsearch中文乱码的解决方案
- jdom ,dom ,dom4j的区别
- jdom ,dom ,dom4j的区别
- DOM、JDOM、DOM4J的区别
- DOM、JDOM、DOM4J的区别
- DOM、JDOM、DOM4J的区别
- DOM、JDOM、DOM4J的区别
- DOM、JDOM、DOM4J的区别
- DOM、JDOM、DOM4J的区别
- apple mobile device service无法启动
- jBPM开发入门指南(1)
- c++之RTTI
- linux中的VirtualBox(win2003)共享主机的串口设置
- 3位数字的比较,找出最大值,
- jDom 和dom4j 输出的中文乱码的解决方案
- ajax简单的封装一下
- Android之Adapter用法总结
- linux: repair filesystem
- 10位数字的比较,找出最大值。
- Java 操作MySql Blob 字段
- 数据结构之栈的应用----算术表达式的实现
- 使用 IAR for 51 实验 LED 灯模拟二进制加减法.
- Android自动化测试解决方案