你用的JDBC是否支持中文,试试这样做
String str ="select * from mytable where name='中文'"
String sqlStr = new String(str.getBytes(),"ISO-8859-1");
然后用将下面的字串试试

解决方案 »

  1.   

    没有错,绝对没有错
    i.e
    select * from mytable where name='chinese'
    就返回正确
      

  2.   

    这是因为jdbc的原因
    可以将sql语句后面补上同长的空格看看
    public static synchronized String zhSql(String s)
      {
        if(s==null) return "";
        int oldStringLen=0;
        oldStringLen=s.length();
       StringBuffer spaceString = new StringBuffer();
        for(int i=0;i<=oldStringLen;i++)
        {
           spaceString.append(" ");
        }
        s=s+spaceString.toString ();
        return s;
      }
      

  3.   

    请参考:
      sql="SELECT id AS '编号',name AS '姓名',sex AS '性别',address AS '地址' FROM person where sex='男' order by id";
      sql=new String(sql.getBytes("ISO8859_1"));
      ResultSet rs=mysql.executeQuery(sql);
      

  4.   

    以上在WIN2000、JDK1.3、TOMCAT下运行通过。