outchina.output()改为
String str=outchina.output();
String temp=new String(str.getBytes("GBK"),"ISO8859_1");
<%=temp%>

解决方案 »

  1.   

    1)<% request.setCharacterEncoding("gb2312");%>最好放在开头第一句
    2)做一下转换;
    <%=outchina.output()%> 改为<%=new String(outchina.output().getBytes(), "GB2312")%>
      

  2.   

    <%@ page contentType="text/html;charset=gb2312" language="java" %>
    加在jsp的开头
      

  3.   

    谢谢以上的各位给我的建议,经测试,snicker、shuhw的方法有效的(ejbcreate的方法我试了一下,出现的还是??,不知道为什么,而且您同shuhw的方法的区别在于构造新的string的参数一个是iso8859,一个是gb2312),而snicker的方法是最省事的。
    另外我还想问一下snicker,这种方法是不是所有的jsp的中文乱码都可以解决,如用request传递参数等。我试过从数据库读数和插入,是没问题的,所以推荐snicker的方法。
    再次感谢各位高手,散分!!!