标签:
一、乱码问题分析
book.xml
<?xml version="1.0" encoding="UTF-8"?> <书架> <书> <书名 name="xxx">Java就业培训</书名> <作者>张老师</作者> <售价>56</售价> </书> <书> <书名>JavaScript</书名> <作者>小四</作者> <售价>69</售价> </书> </书架>
保存到XML文件中,出现乱码:
XMLWriter writer=new XMLWriter(new FileWriter("src/book.xml")); //FileWriter 查看的本地的编码格式 writer.write(document); writer.close();
出现乱码原因:
document对象在内存中是以"UTF-8"编码形式存在,用FileWriter将document对象以字符流的形式写入xml文档默认是用本地码表"gb2312"编码,所以,编码不一样出现乱码问题。
解决方案一:
包装流OutputStreamWriter并给定写入文件时所使用的编码表
XMLWriter writer=new XMLWriter(new OutputStreamWriter(new FileOutputStream("src/book.xml"),"UTF-8"));
writer.write(document);
writer.close();
解决方案二:
OutputFormat的setEncoding方法指定传
OutputFormat format=OutputFormat.createPrettyPrint(); format.setEncoding("UTF-8");//和文档一致 XMLWriter writer=new XMLWriter(new FileOutputStream("src/book.xml"),format); writer.write(document); writer.close();
乱码问题总结:
总之,用字符流向文件写入数据要考虑乱码问题,而用字节流就不必考虑乱码问题
标签:
原文地址:http://www.cnblogs.com/lyjs/p/4861533.html