【求助】
大家在部署web应用,有没有遇到过请求参数中的中文传到后台就乱码(这里的乱码情况是中文都成了问号,数字和字母就正常),但数据库中的中文可以返回正常的中文。
目前问题排查情况是:数据库正常,nginx代理在Rancher云上。
A情况:应用和网关部署Rancher云就出现上面的乱码情况;
B情况:应用和网关部署在windows上正常;
C情况:应用部署在windows上,网关、auth部署在Rancher云上,也出现上面的乱码情况;
麻烦大家帮忙看看是哪里出了问题。

 描述上,是我之前的意思。不过之前我们先是从数据库开始排查的,再排查容器的编码问题,都统一成了utf-8还是有问题。

因为我们开发的auth.jar ,gateway.jar都是小于100M就使用了Rancher云的快速部署方式,为了让编码统一,也进行了运行-Decoding=utf-8配置和容器LANG=zh_CN.utf8部署配置,但还是不能解决。后面就使用了服务迁移,最后无意中使用了jenkins加入jar包打镜像的尝试,结果无意发现了编码问题解决了。最后,想到了迁移部分服务进行观察,最终锁定问题出在gateway服务转发上。

 

后面通过使用jenkins打包,配置-Decoding=utf-8和部署配置LANG,解决了乱码问题。但使用Rancher云的快速部署,启动命令CMD加入-Decoding=utf-8和部署配置LANG,却不能解决这个问题。

 

 

 

问题已经找到,是Rancher云快速部署java jar程序的镜像版本问题,里面有两个 配置不能同时生效,一个是java -Dfile.encoding=utf-8 -jar XXX.jar中的 -Dfile.encoding=utf-8 ,一个是LANG=zh_CN.utf8.。建议大家在遇到类似的乱码问题,尽量不要使用Rancher云快速部署,在使用jenkins部署时前面说到的两个配置需要同时配置。

posted on 2022-04-08 15:50  Dawn.Break  阅读(782)  评论(0)    收藏  举报