MySQL是我们在项目开发的时候经常使用的数据类型数据库,但是往常我们需要在数据库保存中文字符,所以经常会遇到数据库乱码的情况,那么小编通过这篇文章来给大家介绍一个彻底解决数据库中文乱码的情况。
中文乱码的问题
create table user(name varchar(11)); # 创建user表 insert into table user("carl"); # 添加数据 select * from user;
插入中文问题:
insert into user value("哈哈");
解决方法:
查看表字符编码
mysql> show create table user G; *************************** 1. row *************************** Table: user Create Table: CREATE TABLE `user` ( `name` varchar(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 1 row in set (0.00 sec)
我们可以看到表的默认字符集是latin1.
所以我们在创建表的时候就需要指定表的字符集:
create table user(name varchar(11)) default charset=utf8;
这样在Linux里面可以访问并且可以插入与访问这个表了。
在客户端显示乱码问题:
在服务器端可以显示中文正常,但是在客户端可能会显示乱码。因为我们的服务器是UTF8,而且数据库的编码也存在问题。
解决方法:
查看数据库编码:
show variables like '%char%';
修改字符编码:
set character_set_server=utf8; set character_set_database=utf8; show variables like '%char%';
永久修改字符集:
修改mysql配置文件/etc/my.cnf:
[mysqld] character-set-server=utf8 [client] default-character-set=utf8 [mysql] default-character-set=utf8
以上就是小编给大家带来的mysql乱码的所有解决方法了,希望大家通过阅读小编的文章之后能够有所收获!如果大家觉得小编的文章不错的话,可以多多分享给有需要的人,大家如果认可我们优草派网站的话也可以多多支持和关注,以便大家了解更多的知识点。