你用是不是mysql啊!你创建数据库不用设置字符集!用默认的就可以了!

解决方案 »

  1.   

    我用的是MySQL但是字符集我也没有设置阿!!
      

  2.   

    sql=new String(sql.getBytes("GBK"),"ISO8859_1");
    gbk和iso的位置改换,试试?
    或者干脆不用生成新的sql,直接传试试?
      

  3.   

    我曾试着把sql=new String(sql.getBytes("GBK"),"ISO8859_1");去掉过但是也不好使!!我试试把他俩调换一下
      

  4.   

    sql=new String(sql.getBytes("GBK"),"ISO8859_1");
    gbk和iso的位置改换,试试?
    或者干脆不用生成新的sql,直接传试试?
      

  5.   

    1:去掉sql=new String(sql.getBytes("GBK"),"ISO8859_1");
    2:SQL语句中:db.executeQuery("select * from admin where UserName='"+username+"' and     PassWord='"+password+"'");,注意,and 和PassWord 之间要有一空格
    试试看.
      

  6.   

    不使用这个转换可不可以?或者
    sql=new String(sql.getBytes("gb2312"))?
      

  7.   

    设置mysql的字符集为gbk,然后sql不要转化,直接查询就可以了
      

  8.   

    在try{后面加一句:Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    试试看吧
      

  9.   

    数据库的字符集和SQL语句的字符集不一致,我以前在SQL Server上碰到过。
      

  10.   

    我在Mysql的my.ini文件中修改了字符集,但是还是不行?难道不是在my.ini文件中修改字符集吗?救命啊!!要死人了
      

  11.   

    楼主先把你转了以后的sql 打印出来看看撒~~~~
       把username,password,分别用new String(xxx.getBytes("GBK"),"ISO8859_1");
    来转码看看`~~~~
      

  12.   

    上名的错误已经解决了通过换了一个Mysql的驱动程序但是出现了下面的错误:
    sql.executeQuery:Communication failure during handshake. Is there a server running on zmh:3306?
      

  13.   

    public static String changeToChinese(String targetStr)
      {
       try
       {
       String returnStr = "";
       if (targetStr==null) 
       {
       return null;
       }
       else 
       {
       
       byte[] b = targetStr.getBytes("gb2312");
       returnStr = new String(b,"iso-8859-1");
       return returnStr;
       }
       }
       catch(Exception ex)
       {
       return null;
       }
       }
    用这个转换一下应该就可以了,我缺分罗