想必初學者在學習java web
階段時,總遇到讓人頭疼的編碼問題,下面做者就爲你們帶來一篇完美解決Get和Post請求中文亂碼的問題。我以爲挺不錯的,如今就分享給你們,也給你們作個參考。一塊兒跟隨我過來看看吧!java
首先,讀者看本身的Tomcat是哪一個版本,在Tomcat8.0
以上(包括8.0版)對get方法已經作了內部的處理,默認設置編碼格式爲中文,因此不準擔憂亂碼問題,只需對post請求按照文章方法設置編碼,方可解決亂碼問題,若讀者Tomcat版本在8.0如下,按照此文章內容也可解決編碼問題。(建議更換8.0以上版本)。git
Tomacat下載地址:tomcat.apache.org/github
Post
請求,只需在Servlet或者jsp中寫入以下代碼就能夠把解決從表單中傳入的中文亂碼問題request.setCharacterEncoding("utf-8");
複製代碼
Get
請求,由於請求參數會被附加到地址欄的URL以後,因此不能用上面的處理方法。應該這樣:String str=request.getQueryString();
//使用URLDecoder解碼字符串
String str1=java.net.URLDecoder.decode(str,"utf-8");
String[] paraStrings=str1.split("&");
//paraStrings[0]就是第一個參數,依次類推...
for(String paraString : paraStrings)
{
String[] nameValue=paraString.split("=");
//nameValue[0]就是表單的name,nameValue[1]就是表單name對應的值
}
複製代碼
還有一種方法就是獲取請求參數以後對請求參數值從新編碼,也就是先將其轉換成字節數組,再將字節數組從新解碼成字符串(建議你們使用)。web
String str=request.getParameter("name");
byte[] bytes=str.getBytes("ISO-8859-1");
String name=new String(bytes,"utf-8");
複製代碼
以上這篇完美解決Get和Post請求中文亂碼的問題就是做者分享給你們的所有內容了,但願能給你們一個參考,也但願你們多多支持做者。apache
寫在最後數組
推薦本身的Github地址:github.com/Lmobjecttomcat
歡迎讀者前來訪問,您的點贊與留言是對做者最大的支持與鼓勵。謝謝!
複製代碼