我在所有页面都添加了如下代码:
<%@ page language="java" contentType="text/html;charset=gb2312" pageEncoding="GBK"%>
response.setContentType("text/html;charset=GBK");
我的页面的表单提交都是post方法,我在:
web.xml的配置:
<?xml version="1.0" encoding="GB2312"?>
<web-app version="2.4" 
xmlns="http://java.sun.com/xml/ns/j2ee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  
  <filter>    
  <filter-name>encoding</filter-name>    
   <filter-class>com.htt.Encoding</filter-class>  
   </filter>  
   <filter-mapping>     
   <filter-name>encoding</filter-name> 
    <url-pattern>/*</url-pattern> 
     </filter-mapping>  
</web-app>
Encoding.java的代码:
package com.htt;   
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 Encoding implements Filter {      
public void destroy() {  }      
public void doFilter(ServletRequest request, ServletResponse response,   FilterChain chain) throws IOException, ServletException {       
request.setCharacterEncoding("GBK");       
chain.doFilter(request, response);       }    
public void init(FilterConfig filterConfig) throws ServletException { }  
}       在数据库中的中文字符都能正常显示,为什么jsp页面都是不能显示中文了???
请高手们帮助,不要提供链接,网上处理办法我都看了两天了,都没有结果!!
等待高手!!

解决方案 »

  1.   

    try:
    <%@ page language="java" contentType="text/html;charset=GBK" pageEncoding="GBK"%>
      

  2.   


    raoyongchao
    你好,具体如何编写UTF-8???
    能说得详细点吗?代码怎么改???
      

  3.   

    你数据库使用的mysql?  数据库的编码是什么呢?建议 jsp文件,数据库编码都统一成一个就行了
      

  4.   


    数据库用的是oracle,
    数据库的编码是什么东西,怎么写啊?
      

  5.   

    全部统一成一种编码
    <%@ page contentType="text/html" pageEncoding="GBK"%>
    jsp中再加上request.setCharacterEncoding("GBK")进行乱码处理
      

  6.   


    问题1:
    我原来的代码中都有:
    response.setContentType("text/html;charset=GBK");
    为什么要改成:
    request.setCharacterEncoding("GBK")问题2:
    <%@ page language="java" contentType="text/html;charset=GBK" pageEncoding="GBK"%>
    为什么要改成:
    <%@ page contentType="text/html" pageEncoding="GBK"%>
      

  7.   

    <%@ page language="java"  contentType="text/html; charset=UTF-8" %>
    试下
      

  8.   


    没用啊!
    我所有的东西都改成了“UTF-8”了。
    1   连wen-inf文件夹下的web.xml中的都改成“UTF-8”,
    2    tomcat下的server.xml文件中的也改成“UTF-8”了。
    3    每个jsp页面都有:
    <%@ page language="java" contentType="text/html; charset=UTF-8" %>
    request.setCharacterEncoding("UTF-8");
    4  还写了一个过滤器,也是“UTF-8”。现在应该一致了吧!!
    可是还是把中文显示为乱码了????
      

  9.   

    tomcat在server.xml设置端口那个标签增加“    <Connector port="8080" protocol="HTTP/1.1" 
                   connectionTimeout="20000" 
                   redirectPort="8443"  URIEncoding="UTF-8"/>
      

  10.   

    我之前也遇到过,是因为数据库编码与jsp不一致导致的,我用的MySql,重新配置了一下解决的,Oracle没接触过,如果可以的话重新配置一下吧,编码格式选择GBK
      

  11.   

    html的meta也加上试试:
    <meta http-equiv="Content-Type" contect="text/html";charset=gb_2312-80">
      

  12.   

    楼主怎么搞得这么复杂?!
    看这个
    http://blog.csdn.net/feg545/archive/2011/02/22/6200710.aspxWEB.XML属于XML文件,建议编码格式为UTF-8ORACLE国际版的默认编码类似于GBK,但UTF-8也不会有乱码,兼容性还是很好的。有时MYECLIPSE会犯病,你可以到Tomcat/work/cataLina/项目/JSP文件名_jsp.java
    用记事本打开,会看到里面有很多乱码,把乱码全部删除掉,再用MyEclipse重新添加中文就没有问题了。
      

  13.   

    查select * from v$parameter视图 有个参数nls_lang(好像是,记不太清了) 就知道oracle数据库编码了  改成一样的应该就可以了
      

  14.   

    我用的是UTF-8,不可以吗?
    <meta http-equiv="Content-Type" contect="text/html";charset=UTF-8">
      

  15.   

    看看我这篇博客,希望可以帮助你,讲解了乱码的一些问题。
    http://blog.csdn.net/wgw335363240/archive/2010/12/06/6059489.aspx
      

  16.   

    谢谢了,我看了。
    改了改,依旧老毛病。
    我现在所有的地方都换成了“UTF-8”,就差数据库没改了。
      

  17.   

    这个貌似有些不能按常理解释。。有次我试验filter过滤编码。。写好后不管怎么重启tomcat、clean打死运行不起,第二天开机后重新运行又好了。。
    之后几天,我又运行试试结果又是乱码,第二天试又正常 = =
    我都彻底无语了…