mysql 中文乱码 原因有以下几点:
1、mysql 客户端编码的问题;
2、编辑器 编码的问题;
3、浏览器 编码的问题;
4、数据库 编码的问题;
5、表 编码的问题;
出现“中文乱码”主要就是由于编码不统一造成的,比如说:你存数据编码是utf8,你浏览器解析的时候也需要一样;当然,今天主要是讲" msyql 中文乱码“,如果是因为你的浏览器、编辑器造成的,这个只能怪你自己对吗?这个是纯粹的人为的;
1、mysql client(客户端)编码
查看客户端 编码字符集 状态(设置为:GBK)
status;
需要注意:client characterset:gbk;一定要是gbk,不能是utf8;
2、mysql 数据库编码字符集 以及 表的编码字符集
查看所有编码字符集
show variables like'%char%';
character_set_client 客户端编码
character_set_connection 连接编码
character_set_database 数据库编码
character_set_filesystem 文件系统编码
character_set_results 结果编码
character_set_server 服务器编码
character_set_system 系统编码
这里有几个地方需要注意:character_set_database、character_set_results、character_set_server、character_set_system 这里可以根据你自己的情况来做相应的修改;
mysql 直接 修改编码字符集方法:
mysql>set character_set_client=gbk;
mysql>set character_set_connection=gbk;
mysql>set character_set_database=utf8;
mysql>set character_set_server=utf8;
3、msyql 配置文件 设置编码字符集:
如果你怕上面的修改编码字符集很麻烦,我们也可以直接
修改msyql配置文件;
1、Windows下一般在系统目录下或者在MySql的安装目录下名字叫my.ini;
2、Linux下一般是 /etc/my.cnf
只需要在配置文件相应的地方添加以下代码:
default-character-set = utf8
或
character_set_client=gbk;
character_set_connection=gbk;
character_set_database=utf8;
character_set_server=utf8;
......
因为不同的msyql版本可能不一样,大家请根据自己的mysql看是否加入哪一种;一般从配置文件都可以看出来的,因为配置文件已经有了默认的代码,最多不是你所需要的编码仅此而已;
msyql sql 命令 创建数据库 创建表 注意事项:
为了防止编码出错,需要注意两点:做好这两点,基本上可以说你的mysql 中方乱码 是不会出现的,除非你修改了其它编码;
1、我们在创建数据库的时候,可以设置好编码字符集;
CREATE DATABASE `test`
CHARACTER SET 'utf8'
COLLATE 'utf8_general_ci';
2、建表的时候 同样也要设置好编码;
CREATE TABLE `database_user` (
`id` int(10) primary key auto_increment NOT NULL default '',
`User` varchar(40) NOT NULL default '',
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2017年11月01日 15:51:22 沙发
因为我修改了后,重启后又出现了乱码的问题,我只好修改了配置文件,重启果然有效。
感谢大神!