form表單提交中文亂碼的詳細解析

2021-07-30 12:50:36 字數 986 閱讀 8519

摘要:中文亂碼主要是根據 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...