request.getParameter()在get和post方法中文亂碼問題


亂碼原因:Http請求傳輸時將url以ISO-8859-1編碼,服務器收到字節流后默認會以ISO-8859-1編碼來解碼成字符流(造成中文亂碼)

post請求:

假設提交請求的jsp頁面是UTF-8編碼

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

解決方法1:在服務端獲取參數前,先設置解碼方式。

//設置解碼方式,對於簡體中文,使用UTF-8解碼
request.setCharacterEncoding("UTF-8"); request.getParameter("參數名");

解決方法2:Tomcat默認編碼ISO8859-1,設置成其他的編碼

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8444" useBodyEncodingForURI="true" URIEncoding="UTF-8"/> 

解決方法3:通過字符串和字節流轉換時使用正確的編碼獲取中文參數

String str = new String(request.getParameter("參數名").getBytes("iso-8859-1"), "utf-8"); 

Get請求 ,只有第三種方法有效。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM