1.调用JSP页面显示乱码
<%@ pageEncoding = “UTF-8”%>
2.调用Servlet页面显示乱码
在servlet使用response对输出内容之前,先执行response.setContentType(“text/html;charset=utf-8”);
3.POST表单传递参数乱码
a.在接收POST提交的参数之前,使用request.setCharacterEncoding(“utf-8”);
b.更好的解决方法就是使用过滤器(但是我这个例子我没有实验成功,还是原理不清楚呀,照猫画虎,画出来的肯定不是虎呀)
创建filter的类,注意必须实现javax.servlet.Filter接口
package filter;
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 CharacterEncodingFilter implements Filter {
private FilterConfig config;
private String encoding = "UTF-8";
public void destroy() {
config = null;
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding(encoding);
chain.doFilter(request, response);
}
public void init(FilterConfig config) throws ServletException {
this.config = config;
String s = config.getInitParameter("encoding");
if(s!=null)
{
encoding = s;
}
}
}
修改web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<filter>
<filter-name>EncodingFilter</filter-name>
<filter-class>filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>EncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
4.URI 方式/Get方式传递参数乱码
修改tomcat中/config/server.xml(红色的字体为后添加的)
<Connector port=”8080” protocol=”HTTP/1.1” connectionTimeout=”20000” redirectPort=”8443” URIEncoding=”UTF-8” />
5.Properties文件乱码
a.native2ascii –encoding utf-8 displaytag.properties displaytag_zh_CN.properties
b.还可以使用eclipse的插件-Properties Editor