JSP中,为何2个汉字或者4个汉字就不显示乱码,而3个汉字则第三个汉字为乱码?我用request获取参数,
为何造成这样的结果?我在头部是这样添加的:<%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*" errorPage="" %>
<%@ page import="com.microsoft.sqlserver.jdbc.*" %>
<%
   request.setCharacterEncoding("utf-8"); 
   response.setCharacterEncoding("utf-8"); 
%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
这是怎么回事啊,乱码的事情一直没有解决

解决方案 »

  1.   

    自己写一个过滤器: public class DoFilter implements Filter 
    {     public void destroy() { 
        }     public void doFilter(ServletRequest arg0, ServletResponse arg1, 
             FilterChain arg2) throws IOException, ServletException { 
        arg1.setCharacterEncoding("GBK"); 
        arg2.doFilter(arg0, arg1); 
    } public void init(FilterConfig arg0) throws ServletException { 
    } } 在web。xml中配置: <!-- 过滤器 --> 
      <filter> 
        <filter-name>encodingFilter </filter-name> 
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter </filter-class> 
        <init-param> 
            <param-name>encoding </param-name> 
            <param-value>UTF-8 </param-value> 
        </init-param> 
        <init-param> 
            <param-name>forceEncoding </param-name> 
            <param-value>true </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> 
      

  2.   

    LZ用的是MYECLIPSE? 可能是因为MYECLIPSE设置的编码问题
      

  3.   

    查看下数据的编码格式
    页面的编码格式
    myEclipse工程的编码格式
    tomcat的编码格式
    最好将这四种统一起来,应该不会有错。
      

  4.   

    建议使用过滤器 还有编码方式使用GBK 
      

  5.   


    是conf里面的web.xml吗?
    还是开始的那个方法放在那里?
      

  6.   

    在web。xml中配置: <!-- 过滤器 --> 
      <filter> 
        <filter-name>encodingFilter </filter-name> 
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter </filter-class> 
        <init-param> 
            <param-name>encoding </param-name> 
            <param-value>UTF-8 </param-value> 
        </init-param> 
        <init-param> 
            <param-name>forceEncoding </param-name> 
            <param-value>true </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> 
    webroot/web-info 文件夹下的web.xml 文件的配置.
      

  7.   

    把你的servlet代码贴出来看一下,
      

  8.   

    把charset=gb2312不就行了吗
      

  9.   


    <servlet>
            <servlet-name>org.apache.jsp.index_jsp</servlet-name>
            <servlet-class>org.apache.jsp.index_jsp</servlet-class>
        </servlet>    <servlet>
            <servlet-name>org.apache.jsp.index_005fbig5_jsp</servlet-name>
            <servlet-class>org.apache.jsp.index_005fbig5_jsp</servlet-class>
        </servlet>    <servlet>
            <servlet-name>org.apache.jsp.index_005fgb_jsp</servlet-name>
            <servlet-class>org.apache.jsp.index_005fgb_jsp</servlet-class>
        </servlet>    <servlet-mapping>
            <servlet-name>org.apache.jsp.index_jsp</servlet-name>
            <url-pattern>/index.jsp</url-pattern>
        </servlet-mapping>    <servlet-mapping>
            <servlet-name>org.apache.jsp.index_005fbig5_jsp</servlet-name>
            <url-pattern>/index_big5.jsp</url-pattern>
        </servlet-mapping>    <servlet-mapping>
            <servlet-name>org.apache.jsp.index_005fgb_jsp</servlet-name>
            <url-pattern>/index_gb.jsp</url-pattern>
        </servlet-mapping>
      

  10.   

    你要搞清楚一个问题。如:JSP1 输入参数 JSP2接收,则这两个JPS都编码要一样。并且两个JSP中都放上这两行代码试试。<%
       request.setCharacterEncoding("utf-8"); 
       response.setCharacterEncoding("utf-8"); 
    %>
    如果你是从SERVLET到JSP,则你这个SERVLET中也要加 response.setCharacterEncoding("utf-8");