我已经在最前面加上了request.setCharacterEncoding("utf-8");但还是不行。请问该如何解决

解决方案 »

  1.   

    String n = request.getParameter("name");
    String name = new String(n.getBytes("iso-8859-1"),"utf-8");
      

  2.   

    在接收参数时要先进行编码在进行获取
    处理 Request 接收参数的中文乱码问题
    POST请求的解决方案:
    request.setCharacterEncoding(“UTF-8”);  --- 一定要在接收参数之前设置编码就OK.
    GET请求的解决方案
           使用String的构造方法:
    String n = request.getParameter("name");
    String name = new String(n.getBytes("iso-8859-1"),"utf-8");
    Response响应中文乱码的处理
    response.setContentType("text/html;charset=UTF-8");
      

  3.   

    写一个filter
      

  4.   

    用base64试试
      

  5.   

    得看你的参数是get、还是post传,如果是get,那么参数是在url中的,需要通过js来处理,如果是post,通过上面说的设置request编码即可。
      

  6.   

    tomcat的配置文件server.xml里面 加一下 URIEncoding='utf-8' 
        <Connector port="8080" protocol="HTTP/1.1" URIEncoding='utf-8' 
                   connectionTimeout="20000"
                   redirectPort="8443" />
      

  7.   

    三楼的办法很好啊,你可以按照以下方法逐个实验:
    1、在接受参数之前,加上request.setCharacterEncoding(“UTF-8”);
    2、对接收的参数进行重新编码:String name = new String(request.getParameter("name").getBytes("iso-8859-1"),"utf-8");
    3、响应也设置编码:response.setContentType("text/html;charset=UTF-8");
    4、如果还是不行,你可以用浏览器调试一下:浏览器空白处右键--->检查---->选择Network---->再在页面上提交一次表单,观察提交的数据是否乱码,如果还有乱码那说明不是后台接收的乱码,可能是你浏览器编码设置的。你先在你的jsp页面代码中检查下,是否添加了编码,然后检查下你的浏览器,或者换个浏览器试试