在sql2005中新建了一个表,里面的某项内容是“手机号码”,
while(rs.next()){
String tmp=rs.getString(3);  
out.println(tmp);
              }
因为它是第三项,显示内容总是????
如果打印第二项,因为是英文,就可以正常地打印。
请问怎么解决?我用的jsp页面的编码都是GB2312

解决方案 »

  1.   

    打印的语句是不是在servlet里?
    在servlet里面没有设置编码?是不是设置servlet的编码问题。
      

  2.   

    如果jsp和Servlet的编码都没有问题的话就是数据库编码的问题了!
      

  3.   

    在out.pringln输出之前加上response.setContentType("text/html;charset=gb2312");试试
      

  4.   

    String tmp=rs.getString(3);
    String gb_tmp = new String(tmp.getBytes("Arial"),"GB2312");
    out.println(gb_tmp); 
      

  5.   

    你在数据库中用相同的sql查询,看结果是不是乱码?如果是乱码,那就是数据库的编码问题,不乱码的话就是程序中编码设置的问题。
      

  6.   

    编码统一就行了,将request和response的编码都设置成统一的编码。
    request.setCharacterEncoding("gbk");
    response.setCharacterEncoding("gbk");
      

  7.   

    我新建了一个index.html,查询数据库,返回的汉字值就不是乱码。
    难道非要把查询数据库部分弄到jsp或者html里面做不可
     
      

  8.   

    你说对了,在开头加上
    request.setCharacterEncoding("gbk");
    response.setCharacterEncoding("gbk");
    高手,谢了!