form表單亂碼的解決方法

首先 get,和 post 的區別:
1> get 請求的請求參數附在地址欄的url之後,post請求是通過http post 機制將表單各個字段及其內容放在Html header 裏面發送到所請求的action中
2>get 請求的數據量小,要小於2kb,
3>因爲get 請求會將請求參數以及內容附在地址欄後面,所以不安全性會更高。

針對get 請求和post請求亂碼分析:
如果是get請求,服務器是由tomcat默認的編碼格式,或者你設定的編碼格式去重新編碼,也就是說,這個編碼是由tomcat容器完成的。至於tomcat 是用那種編碼,分情況
1>.如果是tomcat7 以及以下版本,默認的編碼格式是ISO- 8859-1,如果想改變默認的編碼格式,在tomcat/conf/server.xml裏面,修改爲<Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" URIEncoding="UTF-8" />,如果你不想改這裏,或者項目不允許動配置,那麼你只能在代碼中每次都要對請求參數自己進行重新編碼了

2>.如果是tomcat8,那麼默認的編碼格式是urf-8,你如果頁面也是使用的utf-8(這個格式 是取決於你瀏覽器怎樣提交)提交,那麼你完全什麼都不用幹

如果是post請求,你的請求參數是由request.setCharacterEncoding("UTF-8")來設置重新編碼格式的。也就是我們需要用代碼去解決。你可以在你的每個servlet中或者每個action中將這段代碼加進去。爲了方便,你可以寫個過濾器,讓每個請求都走一下過濾器。當然,如果你用的是springMvc,或者struct2等框架,他們都有自帶的過濾器,直接在web.xml中進行配置就好了。

以上針對中文亂碼的分析,只是針對於前臺向後臺提交數據的亂碼

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章