用gb2312是可以传递中文简体的,但页面繁体部分就会是乱码了。
我现在设的是:
<%@ page contentType="text/html; charset=utf-8"%>request.setCharacterEncoding("utf-8");这样也应该算是编码设置一致的吧

解决方案 »

  1.   

    我是通过URL地址穿参数的方式传的,有没有其他好的解决方法吗?
      

  2.   

    to  god9(神九) 用过了,也是乱码to  cangwu_lee(小橙子) 既然问题不大,还请提供一个解决方法,谢谢。
      

  3.   

    http://blog.csdn.net/lvyuanfang/archive/2005/02/03/279498.aspx
      

  4.   

    to  lvyuanfang() 文章里面是针对简体中文解决的办法,我现在是要在繁体跟简体下都可以用,所以一定要设置成UTF-8
      

  5.   

    第一种方法:request.setCharacterEncoding("GBK");第二种方法:
    <%
        String str=request.getParameter("boy");
        byte b[]=str.getBytes("ISO-8859-1");
        str=new String(b);
    %>
      

  6.   

    to lookydd(苦苦咖啡) 解决之后别忘了来这里指点指点啊!!!
      

  7.   

    public static String toChinese(String str) {
      String a=null;
      try{
        if(str==null){
          return null;    }
        else{
          a=new String(str.getBytes("ISO8859_1"),"GBK");
          return a;
        }
      }
      catch(Exception e){
        return null;
      }
    }
      

  8.   

    to ymm(紫外线)还是乱码,没什么效果:(
      

  9.   

    也许对你有帮助Jsp中文乱码小议
                -------郭鹏
    Jsp是一个很热门的话题,但让大多数人都头痛的是JSP页面中的乱码问题,笔者身有体会;曾为了解决中文乱码问题郁闷了好几天,试了很多方法都不行。最后在JSP专业人士的帮助下,终于解决。之后笔者曾对此做了一些小的研究。
    首先我们先了解一下问题的原因。一般情况在在每个JSP页的头部都有这样一条语句:
    <% page contentType="text/html; charset=gb2312" %>这条语句决定了此页面使用GB2312编码形式,而在数据库中一般用的是iso-8859-1字符集存储数据. 而Java程序在处理字符时默认采用统一的ISO-8859-1字符集(体现Java国际化思想),所以在添加数据时,默认的字符集编码是iso-8859-1,而页面采用的是GB2312,所以就出现乱码问题。为解决此问题应在存储的时候把GB2312换转成iso-8859-1。有此时候在读出时也会出现乱码,那么只需反过来就可以了,把iso-8859-1转换成GB2312。
    具体实例归纳了以下几点,也许会对大家有一些帮助。
    1、 在建立JSP页面时应该注意在jsp页面的头部加入一下代码
    <% page contentType="text/html; charset=gb2312" %>
    此方法是解决JSP页面显示时的乱码。
    2、 有时还需在HTML代码中的<head></head>中加入这句
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    3、 在bean中用的是iso-8859-1编码,在jsp中一般用GB2312编码,处理此类乱码问题如下
    String str=new String(strName.getBytes(“iso-8859-1”),”GB2312”);
    具体用到此方法的地方为,当提交表单到bean(bean的功能是存储数据到数据库)表单提交后,数据库中存入的数据确变成了????,因此在调用bean之前应对编码进行转换,方法:String str=new String(request.getParameter().getBytes(“iso-8859-1”),”GB2312”);
    这样,存入数据库的数据库的数据就可见了。
    4、 对于页面间的参数传递也可以用这个方法来处理乱码问题:
       public String getStr(String str)
       {
           try
       {
          String temp_p=str;
      byte[] temp_t=temp_p.getBytes("ISO8859-1");
      String temp=new String(temp_t);
      return temp;
       }
       catch(Exception e)
       {}
       return "null";
    }
    5、 在表单定义时加上这个属性有时也可以解决表单提交过程中出现的乱码
    <form enctype="multipart/form-data"></form>
    6、 提交英文字符能正确显示,如果提交中文时就会出现乱码。原因:浏览器默认使用UTF-8编码方式来发送请求,而UTF-8和GB2312编码方式表示字符时不一样,这样就出现了不能识别字符。解决办法:通过request.setCharacterEncoding("gb2312")对请求进行统一编码,就实现了中文的正常显示。
      

  10.   

    谢谢 guo__peng(guo__peng)
     
    里面的方法我试过了,还是不行,问题就在于我的页面既有简体又有繁体,所以不能设置成GB2312的。请遇到过此问题的高手赐教。
      

  11.   

    你可以用Macromedia Dreamweaver编辑网页,然后用 Ctl +J 选择页面编码为 utf-8 ,把你所有用到的页面都这么操作一下,然后再试试,也许可以,我以前作繁体系统的时候就是这么作的
      

  12.   

    to damaha999(追求成功的男人)这个方法也不行啊~~~~~
      

  13.   

    简单点就在jsp页面里加上<%@ page contentType="text/html;charset=GBK" %> 就可以了。
      

  14.   

    办法有一个也比较有效,就是麻烦点。
    在你要发布的项目中加入下面的一个类SetCharacterEncodingFilter原码如下:
    package filters;
    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;
    import javax.servlet.UnavailableException;
    public class SetCharacterEncodingFilter implements Filter {
        protected String encoding = null;
        protected FilterConfig filterConfig = null;    protected boolean ignore = true;
        public void destroy() {        this.encoding = null;
            this.filterConfig = null;    }
        public void doFilter(ServletRequest request, ServletResponse response,
                             FilterChain chain)
    throws IOException, ServletException {        if (ignore || (request.getCharacterEncoding() == null)) {
                String encoding = selectEncoding(request);
                if (encoding != null)
                    request.setCharacterEncoding(encoding);
            }        chain.doFilter(request, response);    }    public void init(FilterConfig filterConfig) throws ServletException { this.filterConfig = filterConfig;
            this.encoding = filterConfig.getInitParameter("encoding");
            String value = filterConfig.getInitParameter("ignore");
            if (value == null)
                this.ignore = true;
            else if (value.equalsIgnoreCase("true"))
                this.ignore = true;
            else if (value.equalsIgnoreCase("yes"))
                this.ignore = true;
            else
                this.ignore = false;    }
        protected String selectEncoding(ServletRequest request) {        return (this.encoding);    }
    }其实就是一个servlet然后在你的web.xml文件做如下声明:
    <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> 
     
    <filter-mapping> 
    <filter-name>Set Character Encoding</filter-name> 
    <url-pattern>/*</url-pattern> 
    </filter-mapping>
    这个办法就是在tomcat中的一个例子为了解决中文乱码具体的例子在tomcat里面有。路径如下:
    \tomcat5\webapps\jsp-examples在这里有你自己找一下吧。在tomcat,jboss下都可以应用我测试过。
      

  15.   

    我觉得你把那些文件都UTF-8保存,最好是用Editplus来另存即可,试试看也许可以
      

  16.   

    至于原理我就不说了,网上找一下,很多的。还有现在好多的j2ee书里大都介绍了一个petstore例子,那里也有一个和这个类似的解决乱码的办法,代码不太一样,原理是一样的。
      

  17.   

    to itgksoft(烟是我寂寞时的情人) 我用的服务器是WEBSPHERE,好象不能用这个方法解决。to jverson(bergkamp) 我试过在DW里新建一个JSP,把页面属性设置成UTF-8,然后把原来的代码COPY过来,但还是不行。to itgksoft(烟是我寂寞时的情人)说了等于没说~~~~~
      

  18.   

    我今天也刚解决了中文问题,不过用得是GBK,按如下步骤试一下行不行首先确认数据库表使用了utf8编码在请求jsp与应答页面中将编码设为UTF8在应答页面中调用如下语句
    <%
    request.setCharacterEncoding("GBK");
    %>在数据库连接中指定useUnicode=true&characterEncoding=gbk另外做如下操作1) 实现一个Filter.设置处理字符集为UTF-8。(在tomcat的webapps/servlet-examples目录有一个完整的例子。请参考web.xml和SetCharacterEncodingFilter的配置。) 2)只要把%TOMCAT安装目录%/ webapps\servlets-examples\WEB-INF\classes\filters\SetCharacterEncodingFilter.class文件拷到你的webapp目录/filters下,如果没有filters目录,就创建一个。
    3)在你的web.xml里加入如下几行:    &lt;filter&gt;        &lt;filter-name&gt;Set Character Encoding&lt;/filter-name&gt;        &lt;filter-class&gt;filters.SetCharacterEncodingFilter&lt;/filter-class&gt;        &lt;init-param&gt;            &lt;param-name&gt;encoding&lt;/param-name&gt;            &lt;param-value&gt;GBK&lt;/param-value&gt;        &lt;/init-param&gt;    &lt;/filter&gt;        &lt;filter-mapping&gt;        &lt;filter-name&gt;Set Character Encoding&lt;/filter-name&gt;        &lt;url-pattern&gt;/*&lt;/url-pattern&gt;    &lt;/filter-mapping&gt;3)打开tomcat的server.xml文件,找到区块,加入如下一行:
    URIEncoding="UTF-8"
    完整的应如下:&lt;Connector port="80"  maxThreads="150" minSpareThreads="25" maxSpareThreads="75"               enableLookups="false" redirectPort="8443" acceptCount="100"               debug="0" connectionTimeout="20000"                disableUploadTimeout="true"                URIEncoding="UTF-8"/&gt;
    4)重启tomcat,一切OK。
      

  19.   

    将上面的&lt;与&gt;转换成<与>号
      

  20.   

    另外请使用最近的JDBC驱动,这几天一直没解决这个问题可能与我一开始用的JDBC驱动太旧有关
      

  21.   

    to genghb(阿毛) 我用的WEBSPHERE服务器,不能用这个方法解决呀~~~~