版权声明:有问题的请留言 喜欢的请给个赞 --------------------------------不定时会更新,因为学习,所以快乐,因为分享,所以便捷!转载请标注出处,哈哈! https://blog.csdn.net/Appleyk/article/details/84822925
场景一:SpringBoot项目,在IDEA中启动,访问接口,无乱码
场景二:SpringBoot项目,打成war包,发到本地tomcat下,启动访问接口,乱码
问题分析:
1、既然查询的结果在IDEA中显示正常,就说明,数据在数据库中存储的OK(不存在编码的问题)
数据库:couchdb
2、会不会是SpringBoot配置文件中没有配置编码呢?
application.properties:
spring.http.encoding.charset=UTF-8
spring.http.encoding.enabled=true
spring.http.encoding.force=true
验证发现,不是SpringBoot项目配置的问题
3、会不会是tomacat的问题呢?
既然在IDEA中启动没问题,说明SpringBoot(自身内嵌tomcat web执行容器)是没有嫌疑的,那为什么放在本地tomcat下跑就中文乱码了呢?
配置tomcat编码
server.xml
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="600000"
maxThreads="150"
redirectPort="8444" maxPostSize="0" URIEncoding="UTF-8" />
试了下,这个没有什么卵用,可能我的tomcat比较倔脾气吧,还有个跟着类似的配置,也是没有什么卵用
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="600000"
maxThreads="150"
redirectPort="8444" maxPostSize="0" useBodyEncodingForURI="true" />
4、反正肯定是tomcat有问题,你负责跑我的项目,出问题了,不找你找谁?
解决方案:
修改bin/catalina.bat,添加一行配置
set JAVA_OPTS=-Xms512m -Xmx1024m -XX:MaxPermSize=1024m -Dfile.encoding=UTF-8
最后,乱码问题解决:
注意:这种改法适合linux系统,如果在Windows下用的话,tomcat启动时控制台输出的中文是乱码的,如下
两全其美的方法,请自行搜索解决!