servlet中,用newUserName = new String(newUserName_AZ.getBytes("ISO8859_1"),"utf-8");解决客户端的中文乱码,但是当浏览器为IE9以上版本时候,这个方法就不能解决中文乱码,请问,针对IE9以上的浏览器,serlvet中怎么解析乱码为正常呢?乱码ie9ie10servletutf-8

解决方案 »

  1.   

    把这个new String(newUserName_AZ.getBytes("ISO8859_1"),"utf-8");
    变成new String(newUserName_AZ.getBytes("ISO-8859-1"),"utf-8");
    试试
    好像IE 不认识ISO8859_1
      

  2.   

    request.setCharacterEncoding("utf-8");
      

  3.   

    response.setCharacterEncoding("utf-8");
    response.setContentType("text/html; charset=utf-8")
      

  4.   

    utf-8
      

  5.   

    吗的 终于试出来了,IE9以上的参数编码是GB2312,去他妈的。
    再请问下大家,servlet中怎么判断客户端请求的浏览器版本号?
    我用request.getHeader("user-agent");这样出来的是很长的字符串。有没有方法可以直接判断是否大于IE8的版本
      

  6.   

    在tomcat中,将<connector/>中设置useBodyEncodingForURI设置为true,<html/> header中添加contentType="utf8" ;
      

  7.   

    tomcat配置文件中的connector标签中添加URIEncoding="utf-8",这样只对get方法有效哦,或者你可以将url后面的中文通过js的encodeURI方法两次编译转化成utf-8的编码encodeURI(encodeURI(your param))
      

  8.   

    response.setCharacterEncoding("utf-8");
    response.setContentType("text/html; charset=utf-8")