是因为数据库的默认编码跟你所得的字符串的编码不一致造成的,用new String("源字符串".getBytes(),"目标字符串的编码")转换字符串的编码就可以了!

解决方案 »

  1.   

    这个我明白,我试过了
    new String(temp.getBytes("iso8859-1"),"GBK");
    new String(temp.getBytes("UTF-8"),"GBK");
    都转不回来,怎么办
      

  2.   

    对了,不知道可以设置数据库的编码格式吗?我这边也有这个问题,我用mssqlserver,取出之后转换后正常了,但是我旁边的两台机器不转换都正常的,不知道我怎么样设置数据库的编码格式,使其取出后正常呢?
      

  3.   

    new String(temp.getBytes("gb2312"),"GBK");
      

  4.   

    老兄你确实郁闷,我的用mysql+tomcat+hibernate玩时好像没有进行转码,也没有出现乱码,在oracle 中出现过乱码,不过用你的方法解决了
      

  5.   

    你的乱码是在数据库里还是在jsp里?
      

  6.   

    数据库里是乱码,取出来也是乱码...郁闷啊
    2312->GBK试过了,不行啊
      

  7.   

    告诉你个思路,你自己去做,肯定行的
    中文数据一般的流程是这样的jsp-》servlet-》javabean-》数据库,这是写数据库的流程,反过来是读的过程,你要确定在每个环节上你都确切的知道他的编码方式,比如说,你的jsp页面是gbk,但是你的bean里是iso-8859-1,那么你就要进行iso-8859-1到gbk的数据编码方式转换,这样你的jsp就能正常显示。特别要注意数据库,因为是第3方的产品,所以他们的编码固定的,你只能配合他们的编码方式。多查查资料,肯定行的
      

  8.   


      答:将 connectionString 设置成 encoding 为 gb2312
     
      String connectionString                                     
      = "jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=gb2312";
    其中test是数据库,这个方法可以解决数据库是乱码的问题.
    如果还有其它的问题,请继续发贴,或发邮件至[email protected]
      

  9.   

    1.我原来就用的"jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=GBK";
    2.因为这个框架我一直用,原来没问题的,都是sqlserver下,这回mysql下用,所以没注意
    3.现在客户的数据都已经写到数据库了,我现在就是要把他们正常显示出来,所以不存在重装数据库等可能
    4.转几次码的方法,看来是可能的,谁知道该怎么转
      

  10.   

    1.我原来就用的"jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=GBK";
    2.因为这个框架我一直用,原来没问题的,都是sqlserver下,这回mysql下用,所以没注意
    3.现在客户的数据都已经写到数据库了,我现在就是要把他们正常显示出来,所以不存在重装数据库等可能
    4.转几次码的方法,看来是可能的,谁知道该怎么转
      

  11.   

    在jsp页面里加入标签<%@ taglib uri="http://java.sun.com/jst1/fmt"prefix="fmt"%>
    在使用<fmt:requestEncoding value="gb2312"/>再把JSTL1.0库引进来,绝对可以!