JSP中的乱码解决办法:
一、POST方式产生的乱码:
办法一:在JSP页面中通过request的setCharacterEncoding设置;
如:<%request.setCharacterEncoding("GBK"); %>
<%=request.getParameter("info") %>
办法二:通过Filter过滤器方式;继承javax.servlet.Filter接口,实现具体方法;例:
public class EncodingFilter implements Filter {
private String encoding=null;
public void destroy() {
encoding=null;
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filterChain) throws IOException, ServletException {
if(encoding!=null){
//解决get方式产生的乱码可以在此处通过getParamter方式获得字符串的信息,然后
//在使用info2=new String(info2.getBytes("ISO-8859-1"),"GBK")的方式来解决
request.setCharacterEncoding(encoding);
filterChain.doFilter(request, response);
}
}
public void init(FilterConfig filterConfig) throws ServletException {
this.encoding=filterConfig.getInitParameter("encoding");
}
}
通过过滤器方式还需配置工程中的web.xml文件,添加代码如下:
<filter>
<filter-name>encoding</filter-name>
<filter-class>demo.filter.EncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>gbk</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
二、解决GET方式产生的乱码:
办法一:通过String对象的初始化方式,如:
new String(info.getBytes("ISO-8859-1"),"gbk")
办法二:通过配置具体服务器的配置文件,如Tomcat中的conf下的server.xml文件中快加入URIEncoding=“gbk”;