JAVA是支持多种编码方式的,如果没有指明传送的字符是何种编码,JSP会按默认的ISO8859-1方式,由其是表单提交以及从数据库中存取的时候特别常见。你需要根据情况重新转换一下,可以用 String(str.getBytes(),"GB2312"),
也可以用下面的代码段。
int n = srouceString.length();
byte temp[] = new byte(n);
for(int i = 0 ;i<n;i++)temp[i]=sourceString[i];
String result = new String(temp);

解决方案 »

  1.   

    JRun中设置contentType="text/html;charset=gb2312" 只能保证正常显示页面内容
    而通过request.getParameter()方法得到的,和从数据库中读出的则显示乱码
    这时候则需要进行内码转换
      

  2.   

    dlyzf,请问你的问题是怎样解决的,我用的是tomcat,如
    String name=request.getParameter("name");
    out.println(name);
    结果输出的????,请不吝赐教。
      

  3.   

    response.setContentType("text/html; charset=GB2312");
    或者response.setContentType("text/html; charset=UTF-8");
    charset前面留一个空格