我用的是Tomcat服务器~~~~数据库是Mysql~~~数据库编码是gb2312~~~页面有<%@ page contentType="text/html; charset=gb2312" %>和request.setCharacterEncoding("gb2312")~~~但是表单直接传到页面显示中文~~~传到数据库数据库显示问号~~~~再传到页面也是问号~~~怎么办啊???请哪位高手指点一下啊~~~谢谢了啊~~~~

解决方案 »

  1.   

    有三种你可以尝试的解决方案:
       (1)将page指令中的pageEncoding设置字符集属性的值定义为”GBK“;用GBK一般不会出现什么问题;
       (2)将你用request对象的那个JSP页面的字符集显示方式也改变为”GBK“,如:request.setCharacterEncoding("GBK");
       (3)在你用request对象的getParameter()方法获取控件提交的值时,可以采用如下方法:
          String value = new String(request.getParameter("控件名称").getBytes("GBK"));
       相信你可以看懂这行代码的意思!
      

  2.   

    在你的servlet中加入一下代码就可以了,
    response.setContentType("text/html;charset=gbk");
    request.setCharacterEncoding("gbk");
      

  3.   

    mysql数据库重新设置为gbk的,然后这里写成
    response.setContentType("text/html;charset=utf-8");
    我的就是这样解决编码问题的! 
      

  4.   

    数据库连接的url记得带上useUnicode=true&characterEncoding=GBK
      

  5.   

    http://blog.csdn.net/luffyke/archive/2009/05/29/4224367.aspx
    亂碼問題總結!樓主去看看吧
      

  6.   

    要看具体情况:
            1.页面:<%@ page contentType="text/html; charset=GBK" pageEncoding="GBK" %>
            2.用过滤器
             3.考虑是get请求还是post请求,提交表单的最好用post方式,get请求既url传值可以修改      Tomcat/conf/server.xml
           4.一楼的第三种方法也是可行的方法
           我知道的就是这么多了,根据具体情况灵活运用,祝你成功
      

  7.   

    参考我们教程中的相关讨论:
    http://family168.com/tutorial/jsp/html/jsp-ch-02.html#jsp-ch-02-02
      

  8.   

    建议统一使用编码格式:utf-8一般不会出现乱码问题了!目前我用的都没出现
      

  9.   

    页面加入:
    request.setCharacterEncoding("gb2312");
      

  10.   

    首先,数据库支持中文插入吗?不行的话,修改数据库实例,default-charset改为gbk等。注意:直接修改my.ini是不起作用的。
    然后,使用过滤器吧。(这个方法最好使,网上代码很多的)
    在源码目录下新建一个java文件,再在web.xml配一个filter。
    要自己多学点哦~
      

  11.   

    最好写一个通用字符串转码的方法类,在接收参数时调用该方法:例:把接收的参数转换成GB2312.
    public class StrTool {
      public static String decode(String str) {
        try {
          if(str==null)
            return "null";
          String temp = new String(str.getBytes("ISO8859-1"), "GB2312");
          return temp;
        }
        catch (Exception e) {
          e.printStackTrace();
        }
        return "null";
      }
    }
    //页面写成<%@ page contentType="text/html; charset=GBK" %>
    //往数据库插入字符串时调用上面的方法.
      String KJMC=StrTool.decode(request.getParameter("控件名称"));
      

  12.   

    不要用GB2312,
    你的pageEncoding用GBK
    另外你的各张页面的<%  %>里面最好开头就加:request.request.setCharacterEncoding("GBK");
    记住,GB2312的地方,都改成GBK
    试试看....0.0
      

  13.   

    首先测试mysql中是否能插入中文 不行的话把mysql的安装文件中的my.ini里边的default-character-set改为gbk 然后再重启mysql服务数据库没问题的话就加过滤器 一般都可以处理中文乱码问题 建议还是使用utf-8
      

  14.   

    过滤器:fileter,去网上查一下,很多
      

  15.   

       前几天我也出现了这个问题,后来上网查了一下,是前台页面和后台javabean编码不一致的原因,后台javabean用   String tagname=new String(tagnameTemp.getBytes("iso8859-1"),"gb2312");转一下,其中iso8859-1是后台的编码方式,不用改,gb2312是前台页面的编码方式,视前台而定,lz可以多试几个。
       祝你好运!