从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");