mysql数据库中文乱码的问题

在idea上面新建了一个web登录项目,浏览器提交表单,username“李华”存入数据库是乱码,只好一步步解决

1.在idea中输出请求参数username就是乱码,也就是“form表单提交中文的乱码问题

解决方法:在idea中设置request编码格式和客户端网页一致(以UTF-8为例),

request.setCharacterEncoding("UTF-8");

参见:https://www.cnblogs.com/yyz666/p/4051294.html

2.解决之后,发现存入数据库还是乱码,即“用JDBC在mysql数据库中插入中文乱码”,这篇文章问题排查思路很好:

https://blog.csdn.net/huangxia73/article/details/11772783

查询了character_set_XXX变量,发现character_set_database(默认数据库的编码格式)和character_set_server是latin1,

百度了一下,可以在 /etc/my.cnf 中全局设置,我添加了以下[client]和[mysqld]

[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci

修改好之后,重启启动mysql。

完美解决。

ps:sudo修改之后,my.cnf权限 chmod 644 my.cnf,不然mysql.cnf任何人都可以读写的华,重启mysql的时候,mysql会忽略这个配置

mysql: [Warning] World-writable config file '/etc/my.cnf' is ignored.

character_set_XXX的含义

https://blog.csdn.net/sun8112133/article/details/79921734

命令学习:

查看数据库编码格式:mysql> show variables like 'character%';

查看创建数据表的编码格式:show create table <表名>

猜你喜欢

转载自blog.csdn.net/nanbiandehe/article/details/85162296