調(diào)試這點小事

前言

不知不覺已經(jīng)入java坑1年半了,看著大牛們的技術(shù)博客,對于自己喜歡的東西一直都只有在Evernote上記筆記的習慣,好像不是很喜歡寫出來分享給大家。今天看到這個問題,好幾次遇見了,卻一直沒有梳理??赡芟麓斡鲆娺@個問題,還是會google別人的文章,想想還是自己寫下現(xiàn)在的問題和解決思路吧。

問題

用IDEA, 在跑JavaWeb服務(wù)測試時, 發(fā)現(xiàn)一個很奇怪的問題, 遠程調(diào)用對方接口的時候, 傳入的中文參數(shù)進入對方的數(shù)據(jù)庫的時候會亂碼。

解決之路

再三確定對方工程師自己接口字符格式和數(shù)據(jù)庫格式是否一致時,對方確認說都是Utf-8?;诔绦騿T之間的不信任,討取對方接受數(shù)據(jù)的代碼,查看代碼格式,發(fā)現(xiàn)的確是這樣。于是開始檢測自己的HTTP的POST調(diào)用是否設(shè)置錯誤編碼格式,發(fā)現(xiàn)使用Utf-8,用static main方法直接測試對方接口,得到結(jié)果是中文入庫不亂碼了。然后啟動Tomcat運行,繼續(xù)測試發(fā)現(xiàn)同樣的參數(shù)還是亂碼。推測可能是Tomcat服務(wù)器的編碼格式不對會導(dǎo)致這個中文亂碼,google發(fā)現(xiàn)需要在Tomcat的conf下的server.xml中Connector標簽中加入URIEncoding="UTF-8"。重啟服務(wù)后調(diào)用接口發(fā)現(xiàn)仍是中文亂碼。沒有辦法獨立解決,于是將這個問題和同組人員討論,有個人認為不可能不信邪于是從git上download下代碼跑了一遍,發(fā)現(xiàn)中文入庫也不亂碼了。
當時覺得不可思議,自己再跑一遍發(fā)現(xiàn)還是亂碼,在百思不得其解之中,前輩發(fā)話了,應(yīng)該是你的IDE有問題,和同事一比較發(fā)現(xiàn)的確用了不一樣的IDE。于是上網(wǎng)google,發(fā)現(xiàn)了一片文章,標題就是IntelliJ IDEA運行tomcat項目編碼錯誤, 及如何指定tomcat編碼。上面講了如何處理這個問題。

解決方案

Run/Debug Configuration -> Tomcat Server -> Tomcat 7, 在VM Options里面加上 -Dfile.encoding=UTF-8 并應(yīng)用


Run/Debug configurations.png

以上更改后, 控制臺輸出會亂碼, 還需要將IDEA的啟動環(huán)境也配成UTF-8, 在IDEA安裝目錄下, 打開 idea64.exe.vmoptions , 最后一行加上 -Dfile.encoding=UTF-8。


idea64.exe.vmoptions.png

總結(jié)

對于吃飯的IDE還是要多多了解啊,工欲善其事,必先利其器。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容