web專案使用Tomcat作為伺服器,GET請求引數中文亂碼
阿新 • • 發佈:2019-01-28
問題:
web專案使用Tomcat作為伺服器時,會遇到GET請求亂碼的問題。
原因:
GET請求是將引數拼接到url上向伺服器發起請求的。在Tomcat接收到請求時,會先將url解碼。而預設的編碼方式為"ISO-8859-1",解碼後自然會產生亂碼。
兩種解決方法:
- 對URL進行兩次編碼,這樣Tomcat自動解碼出來的仍然是url編碼以後的非中文字元,不會亂碼。但注意在伺服器上獲取引數時需要再解碼一次。
- 設定Tomcat的server.xml檔案,在定義處理http請求的聯結器中設定URIEncoding=”UTF-8”。
<Connector port ="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/>
第一種方法,“一切(編碼)盡在掌握”,會感覺更放心。第二種方法沒有研究過是否一定可靠。不過個人感覺一般情況下第二種就足夠了,簡單易艹。