编码
处理方案:修改client、results、connection为gbk
这样控制台就不会出现乱码!!!
1 查看MySQL编码
SHOW VARIABLES LIKE 'char%';
因为当初安装时指定了字符集为UTF8,所以所有的编码都是UTF8。
l character_set_client:你发送的数据必须与client指定的编码一致!!!
l character_set_connection:client向connection负责!
l character_set_database:数据库存储数据的编码,由connection向database负责;
l character_set_server:MySQL服务器默认编码。创建的数据库在没有指定编码时默认为服务器的编码;
l character_set_results:响应的编码,即查询时返回给我们的数据的编码;
2 控制台编码
注意,当前我们使用的控制台编码是GBK,如果你插入的数据中存在中文,那么就是GBK编码的,但MySQL会认为你插入的是UTF8编码的数据,所以一定会出现编码。就算插入的数据不会出现问题,但是MySQL发送回来的查询结果也是UTF8的,我们的控制台再当成GBK编码来显示,那么也会出现乱码,处理这一问题的办法是:要么把控制台的编码修改为UTF8,要么把MySQL的client和results修改为GBK。
我们不能修改控制台的编码,但我们可以修改MySQL的编码:
l 修改character_set_client变量:set character_set_client=gbk;
l 修改character_set_results变量:set character_set_results=gbk;
虽然可以去修改这两个变量,但是在你下一次登录MySQL时这个修改就无效了,因为它只对当前session有效!即只是修改了当前窗口而已!为了处理这一问题,可以到MySQL的安装目录中找到my.ini文件,修改默认编码:
配置文件路径:D:Program FilesMySQLMySQL Server 5.1 my.ini
3 怎样才能没有编码错误
我们只需要让控制台、character_set_client、character_set_result,三者的编码一致即可。