因为Java的默认编码是Unicode,所以你把页面上的编码和Mysql的编码都换成utf-8试试?

解决方案 »

  1.   

    先把这个request.setCharacterEncoding("gb2312");  去了试试.
    不行再把你从数据库查出的串用 new String(yourString.getBytes("ISO-8859-1"),"GB2312");转一下试试.
      

  2.   

    request.setCharacterEncoding("gb2312");这句话只对你的表单是POST时才会起作用.
    不过这种问题一般都采用楼上的方式转换的.
    不知道你的具体问题是什么?
      

  3.   

    JSP的request 默认为ISO8859_1,所以在处理中文的时候,
    要显示中文的话,必须转成GBK的,如下
    String str=new String(request.getParameter("name").getBytes("ISO8859-1"),"GBK");
    out.println(str);
    这样就可以显示中文了MYSQL操作时的中文问题:
    这个要看MySQL的默认编码了,一般不调整的话为latin1其实和ISO8859_1一样,所以操作的时候要处理和他一致,不然就会乱码的    1.插入中文:
        String sql2="INSERT INTO test (name) VALUES('"+request.getParameter("name")+"')"; 
        stmt.executeUpdate(sql2);
    不用编码就可以插入了    2.显示插入的中文:
        因为存入的是latin,所以显示的时候就要GBK一下
        String x=new String((rs.getString("title")).getBytes("ISO8859_1"),"GBK");
        out.println(x);    3.设定存储编码:
     当然在MySQL为latin1编码时,也可以存的时候用GBK了
    Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/jsp?useUnicode=true&characterEncoding=GBK","root","");
    str1="中文";
    String sql2="INSERT INTO test (name) VALUES('"+str1+"')";
    这样也可以很成功的插入了,呵呵
      

  4.   

    1. 在所以涉及编码的地方显式地设定统一的编码2. 添加编码过滤器, Spring带有, 网上也有相关的代码