日期:2014-05-17  浏览次数:21005 次

JSP 中文乱码问题 new String(s.getBytes("iso-8859-1"),"utf-8");
由于中文乱码的问题。。
小弟使用了new String(s.getBytes("iso-8859-1"),"utf-8");
确实没有乱码了。。。

但是因为有个验证步骤,可能要反复执行那个转换。。。

一旦第二次用new String(s.getBytes("iso-8859-1"),"utf-8");转换,之前的汉字又乱码了。。。
如何解决?

------解决方案--------------------
用个filter不行吗
------解决方案--------------------
可以配置一个过滤器,统一设置字符编码
------解决方案--------------------
配置一个Filter,
WEB.XML

<filter>
 <filter-name>CharFilter</filter-name>
 <filter-class>com.test.CharFilter
 </filter-class>
 <init-param>
   <param-name>encoding</param-name>
   <param-value>UTF-8</param-value>
 </init-param>
</filter>
<filter-mapping>
<filter-name>CharFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

自己创建Filter  implements javax.servlet.Filter

public class CharFilter implements Filter
{
    
    private String charFilter;
    
    @Override
    public void destroy()
    {
        
    }
    
    @Override
    public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2)
        throws IOExceptionServletException
    {
        HttpServletRequest request = (HttpServletRequest)arg0;
        arg0.setCharacterEncoding(charFilter);
        arg2.doFilter(request, arg1);
    }
    
    @Override
    public void init(FilterConfig arg0)
        throws ServletException
    {
        charFilter = arg0.getInitParameter("encoding");
    }
    
}

------解决方案--------------------
1.使用post提交 不要用get
2.过滤器