request的get和post引數亂碼問題
一、原因
1、http在請求的時候,如果沒有特殊設定,採用過的是ISO8859-1的編碼方式進行資料提交,伺服器解析的時候採用的也是ISO8859-1的方式進行解碼。因為ISO8859-1字符集中沒有中文,所以造成亂碼。
注意:
伺服器的解碼方式和傳過來的http請求的編碼方式無關。需要各自設定。
比如:在jsp中設定了請求的編碼方式是utf-8,但是伺服器並不會採用utf-8進行解碼,在沒有設定的情況下,仍然採用的是ISO8859-1進行解碼,仍然會造成亂碼。
二、解決辦法
1)post請求
1、設定request.setCharacterEncoding("")
2、Tomcat預設編碼ISO8859-1,設定成其他的編碼
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8444" useBodyEncodingForURI="true" URIEncoding="UTF-8"/>
|
useBodyEncodingForURI和URIEncoding區別
3、通過字串和位元組流轉換時使用正確的編碼獲取中文引數
String str = new String(request.getParameter("引數名").getBytes("iso-8859-1"), "utf-8");
|
2)get請求
對get請求的引數的轉碼,上述post的三種方式,只有第三種能用,這和Tomcat的內部機制有關
相關文章
- 解決ajax get post方式提交中文引數亂碼問題
- Servlet中request請求Get和Post方法以及亂碼解決Servlet
- 引數傳遞中編碼問題(Get/Post 方式)(一)
- 引數傳遞中編碼問題(Get/Post 方式)(二)
- 小議Servlet接收post和get混合提交中文亂碼問題薦Servlet
- Django中的request.GET和request.POSTDjango
- nodejs接收get引數和post引數NodeJS
- Get和Post的用法,Request.QuerySt…
- Java進行post和get傳引數Java
- Request 接收引數亂碼原理解析
- 【原創】Tomcat在處理GET和POST請求時產生的亂碼問題Tomcat
- Spring Tomcat Post Get 請求引數有中文時出現亂碼或+號變空格等關於編碼的問題SpringTomcat
- GET請求引數為中文時亂碼分析
- PHP接收GET中文引數亂碼深入研究PHP
- java中解決request中文亂碼問題Java
- php中$_REQUEST、$_POST、$_GET的區別和聯絡小結PHP
- CI框架獲取post和get引數_CodeIgniter心得框架
- js解決url傳引數中文亂碼問題JS
- beego Session main 在 ctx.Request.RequestURI放行一個get post 請求問題GoSessionAI
- Tomcat 5環境下的jsp中文亂碼問題(分別針對POST、GET方法)TomcatJS
- 用XMLHTTP Post/Get HTML頁面時的中文亂碼問題之完全Script解決方案 (轉)XMLHTTPHTML
- Spring MVC的Post請求引數中文亂碼的原因&處理SpringMVC
- Retrofit 動態引數(非固定引數、非必須引數)(Get、Post請求)
- jboss get請求中文亂碼問題的解決[zt]
- golang web開發獲取get、post、cookie引數GolangWebCookie
- GET 和 POST 的區別(重要,面試常問)面試
- ajax使用url傳遞中文引數亂碼問題解決
- JSP中四種傳遞引數中文亂碼問題JS
- Java Web(二) Servlet中response、request亂碼問題解決JavaWebServlet
- Postman 使用 Get 請求 URL 傳參中文亂碼的問題Postman
- GET和POST的區別?
- GET和POST的區別
- GET 和 POST 的區別
- POST 和 GET 的區別
- Servlet接收JSP引數亂碼問題解決辦法薦ServletJS
- 記錄PHP post提交表單匯入mysql中文亂碼的問題PHPMySql
- C# 之HTTP請求get,post帶重試引數C#HTTP
- get和post區別