你先在sqlplus里面select看看字符是否显示正常
如果这里就不正常的话,那就是你写入数据库的时候没有转换字符集,需做反面转:str = new String(str.getBytes("GB2312"), "iso-8859-1");
如果在数据库里面是显示正常的,通过returnValue = new String(str.getBytes("iso-8859-1"), "GB2312");转换后,在java里面System.out.println()输出来还是乱码,那就是真的有问题了……具体我也不好确定。
若是在jsp里面显示有问题,设置:
 <%@page contentType="text/html;charset=gb2312"%>
即可

解决方案 »

  1.   

    在sql pulg中却是好的,就是用jdbc连接时就不对了
      

  2.   

    如楼上所说:client是servlet:
     public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType(CONTENT_TYPE);
    response.setContentType("text/html; charset=gb2312");
      

  3.   

    returnValue = new String(str.getBytes("iso-8859-1"), "GB2312");转换后,在java里面System.out.println()输出来就是0xE4BA9AE6B4B2E4B880E58FB7
    哪位大吓碰到过,急急急!!
      

  4.   

    关键是你存的时候用的是什么字符集
    如果你存的时候用的是iso-8859-1,那你取的时候用
    returnValue = new String(str.getBytes("iso-8859-1"), "GB2312");
    肯定没错,
      

  5.   

    我在sql pulg里显示是对的,我现在关键是从数据库取的时候就不对了,还没到jsp页面显示,jsp页面显示是对的(因为其他中文字是对的)现在的问题集中在:从数据库取的时候就不对了??
    哪里有什么设置吗?