1.数据库直接insert也是乱码么。打开你的mysql文件下的my.ini看default-charset是什么,一共俩个,改成utf-8.
2.request.setCharacterEncoding("utf-8")进行下接受前的转码,
如果用get接受,用new String(request.getParameter("name").getBytes("ISO-8859-1"),"utf-8");转码。

解决方案 »

  1.   

    不好意思 数据库排序规则复制错了 我的是SQL2005 排序规则是Chinese_PRC_CI_AS
    我jsp提交到servlet都是post方式我是用Eclipse写的。刚用 都不知道怎么跟踪调试。。我要是能跟踪到PreparedStatement内的SQL也许就能发现问题了。。哎 不知道怎么调 
      

  2.   

    到serlvet,request.setCharacterEncoding("utf-8"),然后接收,
    你先在servlet中打印一个你接收到的值,看是否乱码,要不就应该没问题的。
    设一个断点,debug。使用方法google下。
      

  3.   

    request.setCharacterEncoding("utf-8");不管是这个
    request.setCharacterEncoding("GB2312");还是这个
    用System.out.println(request.getParameter("username"));这个输出到控制台 都是???问号。。
      

  4.   

    你的jsp的编码方式是utf-8 吗?post的方式默认是iso-8859-1,
    你用String a1 = request.getParameter("XXXX"),然后在后台再转码试验一下
    String title=new String(a1.getBytes("iso-8859-1"),"gbk");
    或者你用过滤器试验一下,有中文,sql2005的字段就要设置成nvarchar的