前端/postman请求到后台,后台取数据中文乱码,导致存入数据库记录乱码——解决办法

操作

我们从前端获取数据后存入数据库,此处使用postman模拟从前端传值到后台,具体如下:
传入的参数

引出的问题:

记录添加成功,但新添加的记录中文出现乱码,具体如下:
数据库所存的记录中文出现乱码
很明显,这不符合我们所想要的效果,那么如何解决这个问题呢?

解决步骤


1、找出问题所在

Step1:排查数据库字符编码

  • 选择所在的数据库, ->右键 ->数据库属性 确认数据库的字符编码为utf-8。

查看数据库属性 数据库字符编码

  • 查看数据库表的字符编码,选中数据库表->右键->对象信息 , 确认数据库表的字符编码为utf-8
    查看数据库表对象信息 数据库表对象信息

Step2:当我们排查了数据库都没有问题之后,下一步我们来进行调试下后台程序哪里出了问题。启动服务器,开启debug模式。

问题出现了~ 可以看到,在request获取参数的时候就已经乱码了,所以存进数据库的值也是乱码的~
问题

2、解决问题

我们去查看tomcat服务器的server.xml配置文件。
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模式来调试下我们的程序,发现成功获取到中文~
debug成功

此时我们查看数据库所存的记录,存值正常~完美解决~
数据库存值成功~

猜你喜欢

转载自blog.csdn.net/pjymyself/article/details/82458645