解决数据库乱码问题的倚天屠龙剑

现象:打开数据库表,发现里面输入的数据就是乱码;

查看表字符编码

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

 

posted @ 2022-04-03 16:16  红旗漫卷西风  阅读(175)  评论(0)    收藏  举报