二、前端向後臺發起請求時,出現的引數亂碼問題解決方案
阿新 • • 發佈:2019-02-09
(一)問題介紹
前端在向後臺發起請求時,可能會向後臺傳遞引數。傳遞引數主要有兩種方式:POST
和GET
,若我們不加以配置,那麼後臺接到的引數可能會有亂碼問題。
(二)POST亂碼
對於POST方式提交的引數若出現亂碼,解決方案如下:
<!-- 解決post亂碼問題 -->
<filter>
<filter-name>encoding</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class >
<!-- 設定編碼參是UTF8 -->
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encoding</filter-name >
<url-pattern>/*</url-pattern>
</filter-mapping>
(二)GET亂碼
對於GET方式提交的引數若出現亂碼,解決方案主要有兩種,
方式一:修改Tomcat配置檔案
修改tomcat配置檔案新增編碼與工程編碼一致
<Connector URIEncoding="utf-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
方式二:
對引數進行重新編碼,因為ISO8859-1
tomcat
預設編碼,需要將tomcat
編碼後的內容按utf-8
編碼
String userName = new String(request.getParamter("userName").getBytes("ISO8859-1"),"utf-8")