项目中文乱码
背景
在spring大杂烩项目中,调用第三方接口时,出现中文乱码。 这里使用到spring、springmvc、本地tomcat、idea
找问题心流: 在电脑中使用idea打开项目,配置好了相应环境。之前使用的另外一个spring项目,可以正常使用,使用postman调接口返回的数据并没有中文乱码。现在使用的另外一个项目,我是想吐槽一下了,项目拉下是不能正常运行的,需要注释掉对应的测试类,在idea中运行项目,一点错误都不能有,比如测试类中有错误,项目就跑不起来,idea中就是这样的。在eclipse中就没有这么样的情况,它也不会检测你测试类中是否丢失了哪些包或者不存在,你还是能正常运行项目。而且拉下来的项目,连配置文件中的内容都缺少,我也是服了。其实这里缺少的是两行配置,加在配置文件中即可,看似两行简单配置,可能会让你在突然拿到这个项目时,启动项目调接口时调不同,你去调别人的接口也貌似调不通。找啊找,很纠结。于是去看同事电脑上对应的项目的配置文件,才发现少了这两行代码,代码仓库居然不提交。我服了。这问题解决了,新的问题又来了。数据返回的中文乱码,但在单元测试中调用接口却没有出现中文乱码的问题。使用postman调用却出现了。 于是我检查idea所有的与编码相关的,在检查postman请求头中的,都没有发现问题,找啊找,意外发现是tomcat的问题。但是我使用之前的项目是可以正常调用接口,也没发现中文乱码问题。
遇到的问题
返回的数据出现中文乱码
原因: tomcat字符集问题
解决方法
检查字符编码,将所有跟编码相关的都更改为 UTF-8 编码格式
tomcat安装目录下的conf/server.xml中,搜索 元素,找到URIEncoding属性(没有就新增),并将其设置为UTF-8:
<Connector URIEncoding="UTF-8" .../>
IDEA的配置tomcat页面VM options 添加
-Dfile.encoding=UTF-8
其他问题检查: 参考这里:https://blog.csdn.net/qq_44549652/article/details/131764308