日期:2014-05-18  浏览次数:20719 次

再开一贴:乱码问题
上一问题:
http://community.csdn.net/Expert/topic/5501/5501106.xml?temp=1.087588E-02

我把所有的jap文件的开头增加了
<%@   page   contentType= "text/html;charset=   UTF-8 "   %>
增加了一个过滤器:
import   java.io.*;
import   javax.servlet.*;
import   javax.servlet.http.HttpServletRequest;

public   class   EncodingFilter   implements   Filter{
private   String   encoding= "UTF-8 ";
public   void   init(FilterConfig   config)throws   ServletException
{
String   s   =   config.getInitParameter( "Encoding ");
if(s!=null)
{
this.encoding=s;
}
}//init

public   void   doFilter(ServletRequest   req,ServletResponse   resp,FilterChain   chain)throws   ServletException,IOException
{
req.setCharacterEncoding(encoding);
resp.setCharacterEncoding(encoding);
chain.doFilter(req,resp);
}
public   void   destroy()
{
this.encoding   =   "UTF-8 ";
}

}
在web.xml中作了配置:
<filter>
    <filter-name> EncodingFilter </filter-name>
    <filter-class> addressbook.filter.EncodingFilter </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> *.jsp </url-pattern>
    </filter-mapping>
   
    <filter-mapping>
    <filter-name> EncodingFilter </filter-name>
    <url-pattern> *.do </url-pattern>
    </filter-mapping>
我用的是struts,IDE为eclipse,数据库为mysql,eclipse中我把编码改为UTF-8,mysql我直接修改的my.ini文件,默认的是latin1,改为UTF-8.
现在问题是index.jsp没有问题了。我一转到logon.jsp报错,logon.jsp中包含的其他的jsp页面我统统都加了 <%@   page   contentType= "text/html;charset=   UTF-8 "   %> ,logon.jsp对应有一个form,还有一个action,现在是打不开logon.jsp,我在index.jsp中用的link转的。

[jsp]   -   servlet   jsp   的Servlet.service()出现错误 <org.apache.jasper.JasperException:   没有支持的编码:     UTF-8
请问是什莫地方我忽落了吗。
解决后一起结帖

------解决方案--------------------

------解决方案--------------------
把下面这段去掉试试:
<filter-mapping>
<filter-name> EncodingFilter </filter-name>
<url-pattern> *.do </url-pattern>
</filter-mapping>

------解决方案--------------------
关注
------解决方案--------------------
有可能是你的service 方法中有问题,或是你看看servlet.jsp是不是哪个地方传得不对
或是eclipse 软件出现了问题,都有可能!

------解决方案--------------------
去掉这句
resp.setCharacterEncoding(encoding);
------解决方案--------------------
支持一下, 统一使用UTF-8编码确实是不错的选择...
------解决方案--------------------
gbk 或