是因为底层生成xml时,没有指定编码。虽然打开txt文件时看到的中文都是一样
但是还是编码的问题。
这个问题需要java生成xml时就指定
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.io.OutputStreamWriter;
- import java.util.ArrayList;
- import javax.xml.parsers.DocumentBuilder;
- import javax.xml.parsers.DocumentBuilderFactory;
- import org.w3c.dom.Document;
- import org.w3c.dom.NodeList;
- /**
- * @开发人员: 死胖子
- * 2009 1:32:41 PM
- */
- public class XMLToNewXml {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- try{
- String uri="book.xml";
- String path="D:/newbook.xml";
- ArrayList list=getBookList(uri);
- OutputStreamWriter fs = new OutputStreamWriter(new FileOutputStream(path),"UTF-8");
- fs.write("<?xml version=/"1.0/" encoding=/"UTF-8/" ?>");
- fs.write("/n<books>");
- for(int i=0;i<list.size();i++){
- Book book=(Book)list.get(i);
- fs.write("/n<book>/n");
- if(book.getTitle()!=null){
- fs.write("<title>");
- fs.write(book.getTitle());
- fs.write("</title>/n");
- }
- if(book.getAuthor()!=null){
- fs.write("<author>");
- fs.write(book.getAuthor());
- fs.write("</author>/n");
- }
- if(book.getPrice()!=null){
- fs.write("<price>");
- fs.write(book.getPrice());
- fs.write("</price>");
- }
- fs.write("/n</book>/n");
- }
- fs.write("</books>");
- fs.flush();
- fs.close();
- }catch(IOException ioe){
- System.out.println(ioe.getMessage());
- }
- }
- }