從4個方面討論web中的亂碼問題:html
修改JSP頁面的編碼爲utf-8java
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
首先確保頁面中中文不是亂碼,若是在地址欄中訪問地址中的中文參數能夠正常顯示,後臺接收到的確實亂碼。那就是tomcat對URL編碼的問題。解決思路:在tomcat的config文件夾下的server.xml中找到本身定義的端口號的位置(通常配置使用http協議的connector),在裏面加入URIEncoding="utf-8"或者URLEncoding="utf-8"web
server.xml部分代碼以下:spring
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" urlencoding="utf-8"/>
這種狀況比較容易忽略,尤爲是你們在剛下載tomcat後,tomcat中可能沒有配置url編碼,碰到亂碼問題一直覺得是本身程序哪裏寫的不對的問題。所以比較容易忽視。tomcat
這種問題是在使用Post傳遞參數時,後臺接收到了亂碼數據。app
咱們通常使用Spring的編碼過濾器解決:在web.xml中配置filter編碼
<filter> <filter-name>CharacterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>utf-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>CharacterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
這主要是Response的編碼問題url
解決方案:設置Response的編碼格式spa
response.setContentType("text/html;charset=utf-8"); response.setCharacterEncoding("UTF-8");