Web中的中文亂碼問題

從4個方面討論web中的亂碼問題:html

JSP頁面中文亂碼

修改JSP頁面的編碼爲utf-8java

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

Get參數中文亂碼(最多見,問的最多的狀況)

首先確保頁面中中文不是亂碼,若是在地址欄中訪問地址中的中文參數能夠正常顯示,後臺接收到的確實亂碼。那就是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參數中文亂碼

這種問題是在使用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");
相關文章
相關標籤/搜索