解决数据库乱码问题的倚天屠龙剑
现象:打开数据库表,发现里面输入的数据就是乱码;
查看表字符编码
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;
那么有没有终极的彻底解决数据库里面数据乱码的办法呢?答案是有的
参考这篇博文:
https://blog.csdn.net/u012410733/article/details/61619656
即可得到彻底解决,不要怕,下面就教你终极大招:
修改mysql配置文件/etc/my.cnf。
[mysqld]
character-set-server=utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
请注意这几个参数配置的位置,不然可能会启动不起来mysql服务:
OK。这下如果你重启mysql服务也会发现它的字符集是utf8.
到此,我们创建表的时候不需要指定字符编码,它默认就是utf8。你说好不好!
按下列操作看看吧。
drop database test;
create database test;
use test;
create table user(name varchar(11));
show create table user \G;

编码问题已经全部统一起来了!
回到我这里,就是按照上述操作,删除数据库,重新见表,重新insert数据。重新访问服务器项目,各个模块测试一遍,所有乱码问题彻底解决掉了
下一篇 :生产运行环境 安装 uWSGI and nginx

浙公网安备 33010602011771号