server.xml
<!-- Define a non-SSL HTTP/1.1 Connector on port 80-->
<Connector acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" enableLookups="false" maxHttpHeaderSize="8192" maxSpareThreads="75" maxThreads="150" minSpareThreads="25" port="80" redirectPort="8443" URIEncoding="GBK" useBodyEncodingForURI="true" />web.xml
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>com.qa.util.SetEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

解决方案 »

  1.   

    编码改utf8,怎样都不乱码。ajax无论怎样,传输的文本数据都是utf8编码。
      

  2.   

    编码统一改为UTF-8,如果还不行,可以写个编码过滤器
      

  3.   


    看看你页面最上面创建的是什么编码格式如果不是UTF-8可以加上
    或者后台接收参数时进行编码格式转换
    String value = new String (request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8");
    如果以上都解决不了的话   可能是数据库编码设置问题
    MYSQL一般会出现这样的问题 可以用以下方法查看编码格式其中,character_set_client为客户端编码方式;character_set_connection为建立连接使用的编码;character_set_database数据库的编码;
    character_set_results结果集的编码;
    character_set_server数据库服务器的编码;
    只要保证以上四个采用的编码方式一样,就不会出现乱码问题。
      

  4.   

    我觉得是你tomcat服务器 编码格式没设置  看看一楼的,我觉得可以解决乱码问题
      

  5.   

    或者你把你的tomcat的编码也改成GBK试试