MySQL 查询分析器乱码问题分析和解决方法
mysql 5.5 提供了以下几个设置字符集的系统变量: character_set_client 客户端字符集 character_set_connection 客户端与服务器端连接采用的字符集 character_set_results SELECT 查询返回数据的字符集 character_set_database 数据库采用的字符集
如果数据库用的是utf8的字符集,那么 character_set_database, character_set_client, character_set_connection, character_set_results, 都是utf8的字符集 而你的控制台/客户端/程序也许采用的并不是utf8,比如你的控制台/客户端/程序用的是gbk, 那么character_set_results 返回数据的字符集utf8 和 你的 控制台/客户端/程序 的字符集gbk不一样,就会出现乱码问题 这时你应该将character_set_results 返回数据的字符集和你的控制台/客户端/程序的字符集一致,乱码问题就解决了。 最简单的方法是使用 set names gbk,即可解决。
控制台使用 insert into table values(); 出现 错误:ERROR 1366 (HY000): Incorrect string value: '\xD6\xDC\xCE\xE5' for column 'name' at row 1 设置 set character_set_client = gbk; 可以解决
控制台使用 select * from table; 出现乱码 设置 set character_set_results = gbk;可以解决
因为 set names gbk 等同于 set character_set_client = gbk; set character_set_connection = gbk; set character_set_results = gbk; 所以可以解决乱码问题