【java】springboot+tomcat+okhttp本机跑起来没有中文乱码,部署后出现中文乱码

这两天出现了一个很奇妙的问题 。

我本机上的数据通过okhttp请求esb接口 一切正常没有乱码。

但当我部署到服务器上后,对方接收到的数据都是乱码了。

和对方核对表示用的都是utf-8。

 

1.第一时间想到的是tomcat是否配置编码,在目录下的server.xml文件中进行配置:

   【java】springboot+tomcat+okhttp本机跑起来没有中文乱码,部署后出现中文乱码

【java】springboot+tomcat+okhttp本机跑起来没有中文乱码,部署后出现中文乱码

再发送数据,对方表示仍然是乱码。

 

2.再想到的是okhttp配置编码格式

okhttp3.RequestBody body = RequestBody.create(MediaType.parse("application/json;charset=utf-8"),soapString);

再发送数据,还是乱码。

 

为了排除是部署的tomcat导致的乱码的可能性,直接把项目打成了jar包,在服务器上用 java -jar xxx.jar 运行,还是乱码。

为了排除系统不同可能导致乱码问题,在本机和服务器上分别用jar包运行,都乱码。

 

3.使用了java -dfile.encoding=utf-8 -jar xxx.jar 设置编码格式,再次发送数据  不乱码了!

 

然后新问题又出现了,虽然传递的数据都是正常的,但是命令行的显示界面全是乱码了,目前还没有找到好的解决方案。

有大佬有好的解决方案求告知。