這兩天出現了一個很奇妙的問題 。
我本機上的數據通過okhttp請求esb接口 一切正常沒有亂碼。
但當我部署到服務器上後,對方接收到的數據都是亂碼了。
和對方覈對表示用的都是utf-8。
1.第一時間想到的是tomcat是否配置編碼,在目錄下的server.xml文件中進行配置:
再發送數據,對方表示仍然是亂碼。
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 設置編碼格式,再次發送數據 不亂碼了!
然後新問題又出現了,雖然傳遞的數據都是正常的,但是命令行的顯示界面全是亂碼了,目前還沒有找到好的解決方案。
有大佬有好的解決方案求告知。