IDEA 直接點擊運行執行正常,命令行下面執行Jar包出現部分亂碼的情況。


解決方案如上:

有個Springboot項目為了測試方便,模型類用中文作為字段屬性,封裝成Odata格式,在通過Springboot發布並打成jar包。

通過命令行啟動jar包里面的Springweb服務,訪問的時候開始進入服務http://desktop-6vf91n9:8080/exp.svc/ 中文字段就亂碼,通過application.properties編碼,進入服務不亂碼了。

http://desktop-6vf91n9:8080/exp.svc/Expsummaries 查看實體數據也不會亂碼了。但是其他應用調用這個數據源的時候會報錯,提示找不到中文命名的字段。后面打開元數據http://desktop-6vf91n9:8080/exp.svc/$metadata 看一下,發現元數據的中文字段還是亂碼,修改application.properties,和IDEA的項目編碼都沒用。折騰了一天,后面對比一下原有的Odata-example項目是用IDEA內置啟動測試的,再啟動試下,發現他的元數據就不亂碼。再執行這邊的jar包還是亂碼。那解決思路就是不執行jar包,通過IDEA直接執行,發現元數據竟然不亂碼了。那也就是說代碼是沒問題的,是環境的差異。網上搜索發現有類似情況的亂碼產生的原因在於 執行jar包的時候沒有制定編碼所致。

解決辦法如下

java -Dfile.encoding=utf-8 -jar abc.jar 就可以避免亂碼。(-Dfile.encoding=utf-8)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM