乱码的问题比较常见,确保各地方的编码格式均统一是保证不出现乱码的必要条件,但仍是常会有编码都统一了仍然出现乱码的状况。html
<%@ page contentType="text/html; charset=UTF-8" %>
第二步:java
String param= new String(request.getParameter("param").getBytes("ISO-8859-1"), "UTF-8");
package com.test.commons.work; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; /** * 请求中中文字符串过滤类 */ public class SetEncodingFilter implements Filter { public void init(FilterConfig filterConfig) throws ServletException { } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { System.out.println("请求转码过滤器==================="); request.setCharacterEncoding("utf-8"); chain.doFilter(request, response); } public void destroy() { } }
其次,并在web.xml中添加以下拦截器:web
<filter> <filter-name>Set Encoding</filter-name> <!--包名+类名--> <filter-class>com.test.commons.work.SetEncodingFilter</filter-class> </filter> <filter-mapping> <filter-name>Set Encoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
这样设置后,每次url访问都会先通过拦截器,对request进行编码。app