首页 > 代码库 > 关于Struts的中文乱码问题

关于Struts的中文乱码问题

今天学习Struts遇到了中文乱码问题

首先我的习惯是jsp中的编码方式都设为utf-8,因为mysql中也是utf-8

结果在我的一个表单的传值过程中还是出现了中文乱码

我在网上查阅资料终于找到解决方法:

总之,各处都设成utf-8

 

然后在 配置文件 web.xml 中设置一个过滤器

    <filter>
        <filter-name>characterEncoding</filter-name>
        <filter-class>com.sz.filter.CharacterEncodingFilter</filter-class>
    </filter> <filter-mapping>
        <filter-name>characterEncoding</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

然后在响应的包下写上代码,设置request的编码为utf-8

package com.sz.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 {  
 
    @Override  
    public void destroy() {  
    }  
 
    @Override  
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException,ServletException   {  
    request.setCharacterEncoding("utf-8");  
    chain.doFilter(request, response);  
    }  
 
    @Override  
    public void init(FilterConfig arg0) throws ServletException {  
    }  
}

 然后问题就解决了

 

关于Struts的中文乱码问题