噢!我中间有用了这个,解决!
Transformer xformer = TransformerFactory.newInstance().newTransformer();
xformer.setOutputProperty("encoding","GB2312");//我加了一行这个
xformer.transform(source,result);

解决方案 »

  1.   

    还是不行,我直接在java代码上测试是通过的,但用在jsp页面再返回就是乱码?
    原文件:
    <?xml version="1.0" encoding="GB2312"?>
    <record objectID="100000">
    <field name="name" type="text">
    <realField name="姓名">temp</realField>
    </field>
    </record>
    中间在jsp中的显示:
    value="&lt;?xml version=&#34;1.0&#34; encoding=&#34;GB2312&#34;?&gt;
    &lt;record objectID=&#34;100000&#34;&gt;
    &lt;field name=&#34;name&#34; type=&#34;text&#34;&gt;
    &lt;realField name=&#34;姓名&#34;&gt;temp&lt;/realField&gt;
    &lt;/field&gt;
    &lt;/record&gt;"
    最终得到的结果文件:
    <?xml version="1.0" encoding="GB2312"?>
    <record objectID="100000">
    <field name="name" type="text">
    <realField name="????">temp</realField>
    </field>
    </record>
    帮帮忙!
      

  2.   

    这和encoding没关系,是jsp程序以及jsp引擎的中文问题。
      

  3.   

    上面在jsp中,中文还是好好的呀!
      

  4.   

    把你的xml都设为UTF-8
    不要用GB2312
    保证你没有问题
      

  5.   

    不行,我把它都设为utf-8了不行
      

  6.   

    打死我也不信不行
    你是用java生成xml文件吗?
      

  7.   

    什么????encode = "GB2312"时
    解析的内容要用 getBytes("GB2312") 转
    保存xml时候,要设置输出的encode 为 GB2312(不设置就会被默认成UTF-8)。