本人在用Java+Mysql写一个小程序,出了点问题,望高手指教!我在Java程序段里用一个中文字符串去查询数据库,报错:com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Unknown column 'è???”?????…????' in 'where clause',仔细检查了代码中的列名和数据库中列名都是一致的啊。然后我用给定的英文字符串或者数字去查询时,就不会报错了,能正确的查出来。我想用中文去查询出错,而列名没有写错,会不会是数据库编码与字符串编码不一致啊?
我把Mysql的[mysql]处改为了GBK,[mysqld]处为utf8,不知道Java程序中默认编码、中文字符串编码是什么?是不是这原因啊?

解决方案 »

  1.   

    凡是出乱码,把该编码的地方全部采用UTF-8才是王道。
      

  2.   

    Mysql的[mysql]处改为了GBK,[mysqld]处为utf8,你这里都不统一,就算现在不乱码,最后也是会乱码滴,because   utf-8可以输入繁体,gbk对大部分繁体他处理不了。
      

  3.   

    不行啊,我把编码都改为utf8,在mysql中插入数据行都报错啦:mysql> insert into build_info values(1,'行政办公楼','徐州昌湖物业公司');
    ERROR 1366 (HY000): Incorrect string value: '\xD0\xD0\xD5\xFE\xB0\xEC...' for co
    lumn 'build_name' at row 1
      

  4.   

    UTF-8啊,或是GBK,但要统一。养成好的习惯,那个用的顺,就用那个吧,我习惯用GBK
      

  5.   

    好久了,我也给忘了。
    记得是重装Mysql后,选择高级安装,里面有一个字符集设置选UTF8
    好象是这样的,你试试!
      

  6.   

    好久了,我也给忘了。
    记得是重装Mysql后,选择高级安装,里面有一个字符集设置选UTF8
    好象是这样的,你试试!