Tomcat的URL中文亂碼解決以及傳輸優化


場景:默認的tomcat容器如果直接使用get方式在url中傳中文時,傳到后台接收會是亂碼

亂碼問題

原因:

tomcat默認的在url傳輸時是用iso8859-1編碼。

解決方案一:

在使用get傳輸參數時,將參數中的中文轉換成url格式,也就是使用urlEncode和urlDecode來傳輸,使用這種方式就是把中文轉換成以%開頭的編碼在url中傳輸。

使用這種方法時,要注意兩點。

1.前台使用urlencode,在后台相應的使用urldecode。

2.使用urlencode的內容是參數內空。千萬要注意,他是會把等於號等符號也給轉換了。所以,最好是先把參數傳換后再進行拼接。而不是把url拼接好再去轉換。

 

解決方案二:

配置tomcat,使用其在url傳輸過程中使用相應的支持中文的編碼。一般國內的喜歡用gbk或gb2312。我個人建議使用utf-8

在tomcat的/conf/server.xml文件中,找到以下這一行。

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

這行的意思也就是使用8080端口來接收html的請求。

 

在這里可以加幾個參數來配置不同的效果:

URIEncoding="UTF-8"     ——設置url傳輸時對url內容的編碼格式

compression="on"       —— 打開壓縮功能 

compressionMinSize="2048"   ——啟用壓縮的輸出內容大小,這里面默認為2KB

noCompressionUserAgents="gozilla, traviata"  —— 對於以下的瀏覽器,不啟用壓縮 

compressableMimeType="text/html,text/xml"   ——壓縮類型

 

對於要解決亂碼來說,改成以下就行

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />

要想頁面打開更快點,就開啟內容壓縮功能,當然,前提是瀏覽也支持這種壓縮。


免責聲明!

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



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