修改mysql字符集。。。

来源:互联网 发布:java object 类型转换 编辑:程序博客网 时间:2024/06/14 09:43

当向 MySQL 数据库插入一条带有中文的数据形如 insert into employee values(null,'张三','female','1995-10-08','2015-11-12','Sales',2000,'是个好员工!'); 出现乱码时,可以使用语句 show variables like 'character%'; 来查看当前数据库的相关编码集。

从上图中可以看到 MySQL 有六处使用了字符集,分别为:client 、connection、database、results、server 、system。其中与服务器端相关:database、server、system(永远无法修改,就是utf-8);与客户端相关:connection、client、results 。
 
client为客户端使用的字符集。connection为连接数据库的字符集设置类型,如果程序没有指明连接数据库使用的字符集类型则按照服务器端默认的字符集设置。database为数据库服务器中某个库使用的字符集设定,如果建库时没有指明,将使用服务器安装时指定的字符集设置。results为数据库给客户端返回时使用的字符集设定,如果没有指明,使用服务器默认的字符集。server为服务器安装时指定的默认字符集设定。system为数据库系统使用的字符集设定。
 
了解了上面的信息我们来分析下乱码的原因,问题出在了当前的 CMD 客户端窗口,因为当前的 CMD 客户端输入采用 GBK 编码,而数据库的编码格式为 UTF-8,编码不一致导致了乱码产生。而当前 CMD 客户端的编码格式无法修改,所以只能修改 connection、 client、results 的编码集来告知服务器端当前插入的数据采用 GBK 编码,而服务器的数据库虽然是采用 UTF-8 编码,但却可以识别通知服务器端的 GBK 编码数据并将其自动转换为 UTF-8 进行存储。可以使用如下语句来快速设置与客户端相关的编码集:
  • set names gbk;

设置完成后即可解决客户端插入数据或显示数据的乱码问题了,但我们马上会发现这种形式的设置只会在当前窗口有效,当窗口关闭后重新打开 CMD 客户端的时候又会出现乱码问题;那么,如何进行一个一劳永逸的设置呢?在 MySQL 的安装目录下有一个 my.ini 配置文件,通过修改这个配置文件可以一劳永逸的解决乱码问题。在这个配置文件中 [mysql] 与客户端配置相关,[mysqld] 与服务器配置相关。默认配置如下:

  • [mysql]
  • default-character-set=utf8
  • [mysqld]
  • character-set-server=utf8

这时只需要将下的默认编码 default-character-set=utf8 改为 default-character-set=gbk ,重新启动 MySQL 服务即可。

阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 玉镯怎么慢慢杀死女士 玉镯带左手还是右手 带着玉镯空间去现代郑晴鸢 带着玉镯空间去现代 女配空间玉镯修仙末世 女配夺回玉镯空间修仙 为什么玉镯不能戴左手 戴玉镯的好处 玉镯怎么保养 梦见玉镯碎了 梦见玉镯断了 带玉镯有什么好处与讲究 玉镯尺寸对照表 翡翠玉镯图片 玉镯多少钱一个 玉镯有裂纹还能戴吗 玉镯有裂纹能养好吗 玉镯有裂痕怎么办 玉镯有裂痕还能戴吗 玉镯有裂纹还值钱吗 翡翠手镯图片及价格 翡翠镯子图片 油青种翡翠手镯 翡翠紫罗兰手镯 春带彩翡翠手镯 翡翠玉镯子价格及图片 翠玉手镯 天然翡翠手镯 玉手镯批发 翡翠玉器手镯 糯米种翡翠手镯图片 翡翠价格及图片 翡翠手镯拍卖价格 翡翠价值 糯米种翡翠手镯价格 翡翠镯子多少钱 玉镯子 糯米种翡翠 翡翠镯 和田玉镯子价格及图片 阿富汗玉手镯价格