操作
我们从前端获取数据后存入数据库,此处使用postman模拟从前端传值到后台,具体如下:
引出的问题:
记录添加成功,但新添加的记录中文出现乱码,具体如下:
很明显,这不符合我们所想要的效果,那么如何解决这个问题呢?
解决步骤
1、找出问题所在
Step1:排查数据库字符编码
- 选择所在的数据库,
->右键 ->数据库属性
确认数据库的字符编码为utf-8。
- 查看数据库表的字符编码,
选中数据库表->右键->对象信息
, 确认数据库表的字符编码为utf-8
Step2:当我们排查了数据库都没有问题之后,下一步我们来进行调试下后台程序哪里出了问题。启动服务器,开启debug模式。
问题出现了~ 可以看到,在request获取参数的时候就已经乱码了,所以存进数据库的值也是乱码的~
2、解决问题
我们去查看tomcat服务器的server.xml配置文件。
发现里面并没有设置字符编码
<Connector connectionTimeout="20000" port="8088" protocol="HTTP/1.1" redirectPort="8443"/>
所以,我们尝试下在这 Connector
标签里面添加 URIEncoding
属性
<Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8088" protocol="HTTP/1.1" redirectPort="8443"/>
此时我们重启服务器,再次使用debug模式来调试下我们的程序,发现成功获取到中文~
此时我们查看数据库所存的记录,存值正常~完美解决~