Mysql乱码

编码

处理方案:修改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 Files\MySQL\MySQL Server 5.1\ my.ini

3 怎样才能没有编码错误

我们只需要让控制台、character_set_client、character_set_result,三者的编码一致即可。

posted @ 2013-11-24 16:17  Echo正在输入  阅读(195)  评论(0)    收藏  举报