WEB开发网
开发学院数据库Oracle 进阶--对Java/JSP中文乱码问题解决心得 阅读

进阶--对Java/JSP中文乱码问题解决心得

 2008-09-04 12:49:56 来源:WEB开发网   
核心提示: 1、JSP与页面参数之间的乱码 JSP获取页面参数时一般采用系统默认的编码方式,如果页面参数的编码类型和系统默认的编码类型不一致,进阶--对Java/JSP中文乱码问题解决心得(2),很可能就会出现乱码,解决这类乱码问题的基本方法是在页面获取参数之前,可以通过设置response.setC

1、JSP与页面参数之间的乱码

JSP获取页面参数时一般采用系统默认的编码方式,如果页面参数的编码类型和系统默认的编码类型不一致,很可能就会出现乱码。解决这类乱码问题的基本方法是在页面获取参数之前,强制指定request获取参数的编码方式:request.setcharacterEncoding("GBK")或request.setcharacterEncoding("gb2312")。

如果在JSP将变量输出到页面时出现了乱码,可以通过设置response.setContentType("text/html;charset=GBK")或response.setContentType("text/html;charset=gb2312")解决。

如果不想在每个文件里都写这样两句话,更简洁的办法是使用Servlet规范中的过虑器指定编码,过滤器的在web.xml中的典型配置和主要代码如下:

web.xml:

characterEncodingFilter
net.vschool.web.characterEncodingFilter
encodingGBK
characterEncodingFilter
/*
characterEncodingFilter.java:
public class characterEncodingFilter implements Filter
{
protected String encoding = null;
public void init(FilterConfig filterConfig) throws ServletException
{
this.encoding = filterConfig.getInitParameter("encoding");
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException
{
request.setcharacterEncoding(encoding);
response.setContentType("text/html;charset="+encoding);
chain.doFilter(request, response);
}
}

Tags:进阶 Java JSP

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接