我要生成的xml文件如下:
<?xml version="1.0" encoding="utf-8"?>
<rows>
  <row id="1">
          <cell>我在</cell>
          <cell>John Grisham</cell>
        </row>
</rows>
中文 "我在" 输出时乱码 
我要生成的文件必须是utf-8的编码方式(我知道可以将编码方式改成gbk解决中文乱码),
如何在utf-8的编码方式下 正确生成中文?

解决方案 »

  1.   


            public static String ISO8859_TO_GBK(Object obj) {
    try {
    if (obj == null)
    return "";
    else
    return new String(obj.toString().getBytes("iso-8859-1"), "GBK");
    } catch (Exception e) {
    return "";
    }
    }
    试试这个,,,把读出来的数据都用这个转换一次,,,,不行的话....吧iso-8859-1可以改成utf-8
      

  2.   

    我试了下,楼上的方法不行啊
    我的关键代码如下:  Element [] cell=new Element[2]
      Element rows=new Element("rows");
      Document myDocument = new Document(rows);
      Element row = new Element("row");
     
      cell[0] = new Element("cell");
      cell[1] = new Element("cell");
      cell[0].addContent("我在");
      cell[1].addContent(" John   Grisham ");
      row.addContent(cell[0]);
      row.addContent(cell[1]);
      rows.addContent(row);   XMLOutputter XMLOut = new XMLOutputter();
            FileWriter writer = null;
            try {
                writer = new FileWriter(dir);
                Format f = Format.getPrettyFormat();
                XMLOut.setFormat(f);
                XMLOut.output(myDocument,System.out);//控制台输出
                XMLOut.output(myDocument, writer);
                writer.close();
            } catch (IOException ex) {
                        }结果是 控制台输出的中文为乱码  生成的XML文件中的中文也是乱码
    怎么解决呢??
      

  3.   

    关键在于writer的encode format不正确OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream(dir), "UTF-8");
    XMLOut.output(myDocument, writer);