摘要:中文亂碼主要是根據 get,post請求的不同,處理方式沒選對引起的,當然也有小可能是tomcat的版本不同引起的
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裡面,修改為
connectiontimeout="20000"
redirectport="8443" uriencoding="utf-8" />,如果你不想改這裡,或者專案不允許動配置,那麼你只能在**中每次都要對請求引數自己進行重新編碼了
2>.如果是tomcat8,那麼預設的編碼格式是urf-8,你如果頁面也是使用的utf-8(這個格式 是取決於你瀏覽器怎樣提交)提交,那麼你完全什麼都不用幹
如果是post請求,你的請求引數是由request.setcharacterencoding("utf-8")
來設定重新編碼格式的。也就是我們需要用**去解決。你可以在你的每個servlet中或者每個action中將這段**加進去。為了方便,你可以寫個過濾器,讓每個請求都走一下過濾器。當然,如果你用的是springmvc,或者struct2等框架,他們都有自帶的過濾器,直接在web.xml中進行配置就好了。
以上針對中文亂碼的分析,只是針對於前台向後台提交資料的亂碼
form表單提交中文亂碼問題
今天在做乙個小專案時,遇到了form表單提交到資料庫中的中文亂碼情況。經過打斷點排查原因,發現是 在執行存資料庫操作之前就已經亂碼了。經過一番檢查,發現了問題所在,特此記錄下。設定 request物件的編碼 即可。注 客戶端資料是以什麼編碼格式提交的,就設定什麼編碼格式。如我在前端設定為 utf 8...
form表單提交到Servlet中文亂碼問題
1 form表單提交到某個servlet後,由servlet顯示其中文資訊,結果是亂碼,解決方法如下 throws servletexception,ioexception這裡為servlet接收form提交表單後處理表單資訊及顯示 more 在處理前新增 request.setcharactere...
Form表單提交資料的亂碼問題
form表單以post方式提交資料 瀏覽器將資料 假設為 中國 傳送給伺服器的時候,將資料變成0101的二進位制資料 假設為98 99 時必然要查碼表,瀏覽器以哪個碼表開啟網頁,瀏覽器就以哪個碼表提交資料。資料到達伺服器後,資料 98 99 要封裝到request中,在servlet中呼叫reque...