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

解决方案 »

  1.   

    请在写入数据库之前和从数据库读出之后在要显示的时候加上:
    request.setCharacterEncoding("gb2312");
    这是对JSP页面而言,在bean里液可以类似处理
      

  2.   

    1.s=new String(s.getBytes(),"iso-8859-1");
    2.s=new String(s.getBytes(),"gb2312");
    3.s=new String(s.getBytes("iso-8859-1"),"gb2312");
    4.s=new String(s.getBytes("gb2312"),"iso-8859-1");
    5.s=new String(s.getBytes("iso-8859-1"));
    6.s=new String(s.getBytes("gb2312"));
    尝试以上的方法之一!
      

  3.   

    可能数据库中并不是乱码, 也许是一种特殊的编码. 你试过unicode, UTF-8, BIG5没有?
      

  4.   

    字符集cp850
    West European Languages(CP850)使用 String newStr = str.getBytes("CP850"), "GBK")
      

  5.   

    看看这个,加个过滤类,中文问题就不用管了,我的就是这么解决的http://dev.csdn.net/develop/article/21/article/27/27837.shtm
      

  6.   

    你先找到SQL_Latin1_General_CP850_BIN对应的编码制式,然后再考虑转换
    用filter机制确实不错,我在项目里也是这样处理的,但对这个问题应该没有作用
      

  7.   

    是不是sap的问题呀?这个没有用过的呀