GET和POST中文亂碼的解決方法
阿新 • • 發佈:2018-11-13
如果表單中含有中文,採用GET或者POST提交請求時,getParameter()方法接收到的引數值亂碼。
1、亂碼產生的原因
請求引數通過瀏覽器傳送給Tomcat伺服器,瀏覽器傳送編碼,但是tomcat預設採用ISO-8859-1編碼進行處理,因此利用getParamenter()取出是亂碼。
2、POST提交時的解決方法
在Servlet中呼叫request.getParameter()方法,執行下面程式碼
1、//解決post中文亂碼,將tomcat解析HTTP協議body體編碼設定為UTF-8
2、request.setCharacterEncoding("UTF-8");
3、response.setCharacterEncoding("UTF-8");
3、GET提交時的解決方法
GET提交時,引數是採用HTTP協議head傳遞,因此request.setCharacterEncoding()對get無效。需要手動編碼轉換。
1、String name = request.getParameter("name");
2、//將name採用UTF-8轉碼
3、name = new String(name,getBytes("ISO-8859-1"),"UTF-8");
建議:在使用中,如果存在中文資訊提交,推薦使用POST提交。
---------------------
作者:xyphf_和派孔明
來源:CSDN
原文:https://blog.csdn.net/xyphf/article/details/78682807
版權宣告:本文為博主原創文章,轉載請附上博文連結!