MYSQL经典问题: (ERROR 1366 (HY000): Incorrect string value:'xD5xD4' for column 'name' at row 1) 网上有好多解决中文乱码的贴,大致都讲的是修改 %MYSQL_DIR%/my.ini default-character-set=gbk 什么的 我试过了,不起作用. (可能是我没处理到位) 下面是我琢磨了半天,得到的结果,不知道是否值得提倡,但目的绝对达到了: 登陆mysql ---> 进入相应数据库---> 输入命令: show variables like '%char%'; 得到: +--------------------------+--------------------------+ | Variable_name | Value | +--------------------------+--------------------------+ | character_set_client utf8 | character_set_connection utf8 | character_set_database latin1 | character_set_filesystem binary | character_set_results utf8 | character_set_server utf8 | character_set_system utf8 | character_sets_dir D:MySQLsharecharsets +--------------------------+--------------------------+ 如果出现上述情况则需要更改数据库编码: 两种方法,第一种是一次搞定,第二种只对当前连接有效,断开连接,恢复更改前状态 方法1: alter database 数据库名 charset utf8; 方法2: set character_set_database = utf8; 再用命令: show variables like '%char%'; +--------------------------+--------------------------+ | Variable_name | Value | +--------------------------+--------------------------+ | character_set_client utf8 | character_set_connection utf8 | character_set_database utf8 | character_set_filesystem binary | character_set_results utf8 | character_set_server utf8 | character_set_system utf8 | character_sets_dir D:MySQLsharecharsets +--------------------------+--------------------------+ 此时编码已经一致,但是,对数据库中的表进行插入中文字符操作,仍然会报 : ERROR 1366 (HY000) ---> set character_set_client = gbk; 设置插入时接收的编码为GBK,这样就可以插入中文了 此时中文字符已经可以插入,但查询结果却还是乱码,再更改一处即可: ---> set character_set_results = gbk; 设置输出结果的编码为GBK 注: 这样的设置只对当前连接有关,连接断开,这些设置恢复数据库默认设置状态,因此,如果需要,每次连接都得设置! 另外:ERROR 1366 (HY000)错误主要出现于控制台(cmd/黑窗口) 执行SQL语句插入中文时弹出, 用mysql-front 软件插入时不会报字符问题,java通过JDBC连接数据库执行executeUpdate("insert 语句") 中文也能成功插入数据且不会报错! PHP解决乱码问题只需在连接后加入mysql_query("set names 'gbk'") 就OK! 如: $conn = mysql_connect("localhost","root",""); mysql_query("set names 'gbk'"); (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|