request.getHeader()方法读取http头信息,其中accept-charset这个项包含了浏览器用的编码,比如gb2312、BIG5之类的,但是似乎只有firefox能返回这个项,IE不能返回这个项,那么想知道客户端浏览器编码应该怎么做呢?request.getCharacterEncoding()这个方法总是返回null。

解决方案 »

  1.   

    顶 , 开发2年多,还没用过request.getHeader();狂汗,
      

  2.   

    有时客户端提交的参数可能有中文,但是编码不一定,就需要知道浏览器用的编码,知道了这个才能正确decode客户端提交的url
      

  3.   

    我是指定自己的网页编码GBK,但是我无法限制客户端浏览器提交参数时使用什么编码——他是使用自己的默认编码而不是使用当前页编码。
    各种给站长提供统计信息的网站提供的js脚本就能获取客户端浏览器编码。js都可以,jsp不应该不可以啊
      

  4.   

    那就把它那一段JS代码放到JSP里面就可以咯。。
    当然相应方法改成JAVA也可以。
    试试这个:request.getCharacterEncoding();
    这个方法。。
      

  5.   

    如果request.getCharacterEncoding(); 得不到 的话,其实对于HTML来说服务端会优先使用你设定的request.setCharacterEncoding(encoding)的encoding编码来接受,
    浏览器发送过来的数据服务端是会遵循encoding编码来解释的。 
      

  6.   

    看这个行不ServletRequest.getLocale()
      

  7.   

    ServletRequest.getLocale()得到Local,但是对其getDisplayLanguage()得到的只是语言名称,比如我们中文,得到的就只是“中文”,getVariant()、getDisplayVariant()得到的还是空