mybatis+MySQL数据写入出现中文乱码
-
在编写图书管理项目时,网页中输入中文字体后,出现了如图的乱码问题
以及数据库中的乱码:
搜索查阅后得出几个解决方法:- 数据库(MySQL8.0+版本)编码设置为UTF-8,有两个选择,经测试无论是utf8mb3还是utf8mb4都无法解决。
- 在数据库的配置文件中添加默认编码:(无效,仍旧乱码)
default-character-set=utf8
- 在mybatis的配置文件中,数据库的url后添加:(无效)
?autoReconnect=true&useUnicode=true&characterEncoding=utf8
-
在查询无果之后选择自行debug。
-
首先在处理post请求的servlet中输出接收到的数据,发现是乱码。
-
于是思考,是在发送请求阶段乱码,还是在接收请求阶段乱码。
-
接着测试,运行程序,先在浏览器中按F12打开我们的调试工具,选择网络,然后在表单中输入我们的中文测试用例,随后点击发送。
-
在调试工具中可以看到数据载荷中,我们填写的信息是正常显示的。说明是接收信息时的编码格式出了错误。
-
定位到错误后,在post请求方法中添加以下语句:
req.setCharacterEncoding("UTF-8");
-
随后重新启动tomcat服务器,输入测试的中文字体,顺利解决!
-