dom4j向xml文件中写数据乱码问题解决
2016-09-04 21:01
477 查看
这是原先利用dom4j向xml文件中写数据的代码
db.xml文件内容如下:
![](http://img.blog.csdn.net/20160904210639910?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
进行操作如截图
![](http://img.blog.csdn.net/20160904211004662?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
此时的db.xml文件内容会发生乱码,不仅新插入的数据乱码,原来的数据同样也发生乱码
![](http://img.blog.csdn.net/20160904210741013?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
解决办法:
设置format编码格式为“utf-8”,再将字符流改为字节流
public void save(Student e) { // TODO Auto-generated method stub Document doc = DocumentHelper.createDocument(); doc = DomUtils.parse("db.xml"); Element root = (Element) doc.selectSingleNode("/students"); Element stu = root.addElement("student").addAttribute("id", e.getId()).addAttribute("name", e.getName()); List<Score> score = e.getScore(); for (Score s : score) { Element sco = stu.addElement("score").addAttribute("project", s.getProject()).addAttribute("value", s.getValue()); } OutputFormat format = OutputFormat.createPrettyPrint(); try { XMLWriter writer = new XMLWriter(new FileWriter("db.xml"), format); writer.write(doc); writer.close(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } }
db.xml文件内容如下:
进行操作如截图
此时的db.xml文件内容会发生乱码,不仅新插入的数据乱码,原来的数据同样也发生乱码
解决办法:
设置format编码格式为“utf-8”,再将字符流改为字节流
即将XMLWriter writer = new XMLWriter(new FileWriter("db.xml"), format);改为XMLWriter writer = new XMLWriter(new FileOutputStream("db.xml"), format);
OutputFormat format = OutputFormat.createPrettyPrint(); format.setEncoding("utf-8"); try { XMLWriter writer = new XMLWriter(new FileOutputStream("db.xml"), format); // XMLWriter writer = new XMLWriter(new OutputStreamWriter( // new FileOutputStream("db.xml"),"utf-8"),format); writer.write(doc); writer.close(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); }
相关文章推荐
- 浅析dom4j解析xml文件及其乱码问题以及与后台数据进行交互
- Dom4j保存数据乱码以及xml文件头编码格式改变的原因和解决方法
- 获取文件上传页面中文数据时乱码问题的解决办法
- Java解析DBF文件,错误Failed to parse Number: For input string: "-.---" 或读取不出数据或乱码问题都在这里解决
- 修改tomcat server.xml配置文件,解决乱码问题
- 解决springmvc返回json数据IE出现文件下载和json数据中文乱码问题
- Java IO流将数据输出到.csv文件中,excel打开时乱码问题的解决
- Java 简单解决springmvc获取properties文件里面中文内容出现论码问题(我遇到的问题是数据提交检验时返回的错误提示出现乱码)
- Asp : 生成xml数据 及解决Flex里的中文显示乱码问题。。。
- SSH项目web.xml文件的常用配置【struts2的过滤器、spring监听器、解决Hibernate延迟加载问题的过滤器、解决中文乱码的过滤器】
- oracle备份文件恢复到oracle10的数据乱码问题解决方法
- 需要解决post提交数据的时候,乱码的问题:在web.xml里做配置:
- 用dom4j解析xml文件写入记事本时,解决换行问题
- 解决PLSQL Developer导出CSV文件数据显示乱码和科学计数法问题
- spring mvc解决中文乱码问题需在web.xml文件中添加下面的配置
- 从xml文件中获取相关数据,解决xml中部分数据没有结束的问题
- php使用fputcsv()函数csv文件读写数据的方法(解决中文乱码问题)
- mysql导入导出数据中文乱码解决方法小结(1、navicat导入问题已解决,创建连接后修改连接属性,选择高级->将使用Mysql字符集复选框去掉,下拉框选择GBK->导入sql文件OK;2、phpmyadmin显示乱码的问题也解决,两步:1.将sql文件以utf8的字符集编码另存,2.将文件中sql语句中的字段字符集编码改成utf8,导入OK)
- 下载文件名字乱码问题,json_encode解决Ajax 返回字符串数据不显示问题