现象:
新创建的项目,采用supervisor方式启动jar包,本地、测试环境运行日志都正常,没有出现中文乱码
生产环境里日志出现中文乱码、数据库里记录也乱码、响应参数却不乱码
问题排查:
首先配置参数添加,启动后都不行
server:
tomcat:
uri-encoding: UTF-8
servlet:
encoding:
charset: UTF-8
force: true
enabled: true
spring:
http:
encoding:
charset: UTF-8
enabled: true
force: true
messages:
encoding: UTF-8
centos 操作系统本地字符集编码(命令:locale )也都是 utf-8
经过排查发现老环境里的supervisor版本为4.2.2 新加的机器版本降为3.4.0版本,经过试验,supervisor升级后乱码现象消失。
或者在supervisor启动参数里添加 -Dfile.encoding=utf-8 也正常
java -Dfile.encoding=utf-8 -jar XXX.jar
以上,留作记录
这篇博客记录了一个生产环境中遇到的问题,即使用Supervisor启动的Java应用在新环境下出现中文乱码。尽管尝试了修改配置如`server.tomcat.uri-encoding`、`spring.http.encoding`等,并确保操作系统locale为UTF-8,问题仍然存在。进一步排查发现,新环境的Supervisor版本为3.4.0,而旧环境为4.2.2。升级Supervisor到相同版本或在启动参数中添加`-Dfile.encoding=utf-8`解决了乱码问题。此解决方案对于遇到类似问题的开发者具有参考价值。
2282

被折叠的 条评论
为什么被折叠?



