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");
相关文章
相关标签/搜索