<head>
里面增加<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta http-equiv="Content-Language" content="zh-cn">
<meta http-equiv="pragma" content="no-cache">试试看

解决方案 »

  1.   

    楼上的!在有的Tomcat上正常,但是在服务器上不正常!也很郁闷的
      

  2.   

    我是用ISO-8859-1編碼的,在tomcat上沒有亂碼的問題
      

  3.   

    是不是request.setCharacterEncoding("GBK");这句的问题?改成其他的试试?
      

  4.   

    byte[] bspecode=specode.getBytes("ISO8859-1");
     specode=new String(bspecode);
    byte[] bmobile=mobile.getBytes("ISO8859-1");
     mobile=new String(bmobile);
    byte[] bmsg=msg.getBytes("ISO8859-1");
    msg=new String(bmsg);
      

  5.   

    msg=new String(specode.getBytes("ISO-8859-1"),"GBK")
    这样就可以变成中文了
      

  6.   

    有时候同版本的tomcat也会这样,我也遇到过
    你可以copy你正常的那个tomcat来覆盖你现在的tomcat,保留原来的xml配置文件。
    或者用rainshow的编码转换方式..
    不过我上次用编码转换还是有错,结果我把开发用的那个tomcat覆盖过去就好了
      

  7.   

    每个jsp页首加:
    <%@ page contentType="text/html; charset=GB2312" %>
    每个文件里加上:
    <head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    </head>
      

  8.   

    request.setCharacterEncoding("gb2312");
      

  9.   

    对于 
    中文处理的常见对策,在网上经常可见的主要是下面2种: 
    <%@ page 
    contentType="text/html;charset=gb2312" %> 
    或者: 
    <% 
    String Hi="你好"; 
    byte[] 
    tmpbyte=Hi.getBytes("ISO8859_1"); 
    Hi=new 
    String(tmpbyte); 
    out.print(Hi); 
    %> 虚拟小龙亭也主要采用了上面2种方法进行了修改,从而变成了1.1版。 通过简单总结,示例中的中文处理发生于以下几个地方: 1 在url附带中文参数,可以直接读取。 
    例如: 
    <%= request.getParameter("showword")%> 2 
    与数据库有关的各种sql操作 这里使用的Access没有发生问题。 
    3 读取HTML 
    form表单中递交的中文值 在jswdk中需要加以编码,较为简洁的写法如: 
    String name1=new 
    String(request.getParameter("user_id").getBytes("ISO8859_1")); 
    另外,在jdk1.3的支持下,不需要加入 
    <%@ 
    page contentType="text/html;charset=gb2312" 
    %> 
    而在jdk1.2.2下面,即使2种方法同时运用也很不稳定。 而在resin平台,情况较好。只要在页面第一行加入: 
    <%@ 
    page contentType="text/html;charset=gb2312" 
    %>即可正确处理中文。 
    如果再加编码则反而不对。 5 
    session中包含的中文 在jswdk中,奇怪的是如果从form中读出的值经过编码则可正确显示; 
    但直接赋予中文值则不行。 
    resin平台很好,同上。 6 对于对变量赋中文值后正确显示中文。 
      
    例如以下程序: 
    <%@ page contentType="text/html;charset=gb2312" 
    %> 
    <html><head></head><body> 
    <% 
    String 
    Hi="你好"; 
    byte[] tmpbyte=Hi.getBytes("ISO8859_1"); 
    Hi=new 
    String(tmpbyte); 
    out.print(Hi); 
    %> 
    </body></html> 
    同样是jswdk1.0.1,以上的表示方法在jdk1.2.2中没有问题,但在jdk1.3下却无法显示。 
    resin平台很好,同上,经过测试,只需要在<head>中补上 
    <meta 
    http-equiv="Content-Type" content="text/html; 
    charset=gb2312"> 
    而不需要<%@ page 
    contentType="text/html;charset=gb2312" %>也能正确显示中文。 体会: jswdk也许只能用于普通开发,稳定性和其它问题可能不如商业软件。 
    由于jdk1.3版性能要好于jdk1.2.2很多倍,并且对中文的支持也较好,所以应该加以采用。 作为免费的商业软件,resin不仅速度快,稳定,自动编译,可指出出错行,可在服务器端支持使用javascript等,而且,至少我觉得对中文的支持很好。 
    当然,如果不必做任何处理即可正确显示中文将是我们所期待的。 另外,相信在unix/linux/solaris下应该没有这样的问题。 
      

  10.   

    request.setCharacterEncoding("GB2312");
      

  11.   

    用这个就可以了!
    String name=new String(request.getParameter("sname").getBytes("8859_1"),"gb2312");
      

  12.   

    战友,
    在下曾经收藏过一篇有关中文处理的文章,共享出来,希望对你能有所帮助.
    <<关于中文问题的研究>>很多朋友下载我的BBS-CS社区程序后安装总发现有中文问题,特别是win下Tomcat4以上版本都会出现中文问题(而在Linux下和Tomcat3.x都没有问题),主要问题是页面显示乱码,必须在IE中调整字符集为GB2312才可以正常显示,为解决这个问题,就在每个JSP的页面头上加入<%@ page language="java" contentType="text/html; charset=gb2312" %>这一行,中文是显示了,但是发现从数据库读出的字段变成了乱码,解决的方法是将所有从数据库读出的字段都进行转码,这是一个很大改动,就算我也不愿意去做:(,所以我在win的Tomcat4下研究了一下出现中文乱码的原因: 
    我首先测试添加数据的情况,发现添加数据后,载数据库中存的中文字是正常的,我查了一下我的数据库连接字串: 
    mysql.url=jdbc:mysql://localhost:3306/bbscs?user=root&password=&useUnicode=true&characterEncoding=8859_1 
    其中useUnicode=true&characterEncoding=8859_1很重要,说明数据库是用ISO8859_1的字符集来存取数据的,而java程序在处理的字符的时候默认就是采用统一的ISO8859_1字符集,这也体现了JAVA国际化思想,所以在数据添加的时候JAVA和数据库都是以ISO8859_1方式处理,所以不会出错。 
    但是在读取数据的时候就出现问题了,数据读出也采用ISO8859_1的字符集,而在JSP的文件头中用了<%@ page language="java" contentType="text/html; charset=gb2312" %>,这说明页面采用GB2312的字符集显示,这就和读出的数据不一样,所以页面显示的从数据库中读出的字符是乱码,所以要对这些字符转码,从ISO8859_1转成GB2312,就可以正常显示了。 
    在Tomcat3.x、Resin中或是在Linux下,我没有加<%@ page language="java" contentType="text/html; charset=gb2312" %>,而页面中的<meta http-equiv="Content-Type" content="text/html; charset=gb2312">起到了作用,可以正常显示,而加上<%@ page language="java" contentType="text/html; charset=gb2312" %>会报错,说明Tomcat4以上版本的引擎在处理JSP的时候不太一样。 
    在BBS-CS 3.0中,由于在处理数据库的方面都封装了,所以只要在页面输出的时候做处理就可以了,我会提供一个Win下Tomcat4使用的版本! 
    数据库的字符集很重要,如果考虑多语言版本,数据库的字符集就应该采用ISO8859_1,只需要在输出的时候采用不同的字符集做转码就可以了,但是这样的做法也有一个问题就是在SQL下不能正常显示字符,各位可根据情况自己处理啦:
    如何在Tomcat4.0.1中解决中文输入和显示问题首先你需要创建一个JAVA文件 名称为MyUtil.java 
    MyUtil.java的内容如下
    import java.io.*; 
    public class MyUtil{
    public static String gb2312ToUnicode(String s){
    try{
    return new String(s.getBytes("ISO8859_1"),"gb2312");
    }
    catch(UnsupportedEncodingException uee){
    return s;
    }
    }
    public static String unicodeTogb2312(String s){
    try{
    return new String(s.getBytes("gb2312"),"ISO8895_1");
    }
    catch(UnsupportedEncodingException uee){
    return s;
    }
    }
    }
    作完后把此MyUtil.java 或者 MyUtil.class 放在你自己的WEB-INF/classes/下
    其次 你要更改几段代码在要显示的JSP文件中
    1 在最上面的开头字段该成如下样子
    <%@page contentType="text/html; charset=gb2312" language="java" import="java.sql.*,MyUtil,java.util.*"%>
    其中 import 近来的MyUtil 和 java.util.* 是解决中文问题关键的所在,切记一定不要忘记补上。
    2 找到JSP文件中的 request.getParameter() Method,并且是实际上真正向数据库提取参数起作用的字段,用MyUtil.gb2312ToUnicode()方法 把 request.getParameter()包起来;工作原理是利用import近来的MyUtil.class里的MyUtil.gb2312ToUnicode() 方法实现UTF8字符转换为GB231编码。
    具体修改方法如下例:
    M=((request.getParameter(M)!=null)?
    (String)request.getParameter(M):"" );
    更改后变为
    M=(MyUtil.gb2312ToUnicode(
    (request.getParameter(M)!=null)?
    (String)request.getParameter(M):"" )); 
    便可以完成中文问题的修改工作
      

  13.   

    换个版本的tomcat吧!很有可能是这个原因!
      

  14.   

    PAGE里写个GBK,再保险点用GETBYTES(“ISO8859_1”)转一下。
      

  15.   

    <<JAVA夜未眠>>里介绍说有可能是JDBC或者tomcat本身不支持中文的原因.自己可以编一个程序,接受到file.enconding,然后再把他System.out.println()
    运行后的结果就是你JDK编码的方式!
      

  16.   

    tomcat4.0有这个bug
    可以加上<%request.setCharacterEncoding("gb2312");%>只要保证每个页面的编码一致,就不会有乱码
      

  17.   

    这个问题很简单,我也碰到过,编码方式一定要正确,
    第一步:比如我的TOMCAT装C盘里
    ,去把
    C:\Program Files\Apache Software Foundation\Tomcat 5.0\webapps\jsp-examples\WEB-INF\classes\filters里的SetCharacterEncodingFilter.class拷贝到你的WEB应用目录下WEB-INF\classes\filters里,注意区分大小写;
    第二步:修改你WEB应用里的web.xml文件(不是TOMCAT里的那个)在<web-app>后加入,如下代码
    <filter>
    <filter-name>Set Character Encoding</filter-name>
    <filter-class>filters.SetCharacterEncodingFilter</filter-class>
    <init-param>
    <param-name>encoding</param-name>
    <param-value>GBK</param-value>
    </init-param>
    </filter>
    第三步:重新启动你的TOMCAT,一切OK!
    也就这样了,我用的是TOMCAT5。0。2,已经没有问题了,给分吧!