在JSF中设置GZIPPed javascript文件的字符编码

时间:2015-02-16 16:11:59

标签: jsf character-encoding glassfish-3

在Glassfish服务器中启用压缩后,我在设置JSF应用程序的javascript文件响应的字符编码方面遇到了问题。

问题是javascript文件包含阿拉伯字符,我正在使用过滤器设置响应的字符编码,并且它工作正常但是在glassfish中启用压缩选项以解决性能问题后,javascript开始生成浏览器控制台中的错误

  

未捕获的SyntaxError:意外的标记ILLEGAL

在调查时我删除了setCharcterEncoding("UTF-8")并且js文件开始按预期工作,但当然没有显示阿拉伯字符。

如何设置此响应的字符编码。

doFilter()函数:

  @Override
public void doFilter(ServletRequest sr, ServletResponse sr1, FilterChain fc) throws IOException, ServletException {
    sr1.setCharacterEncoding("UTF-8");
     fc.doFilter(sr, sr1);
}

web.xml过滤器部分:

 <filter-name>JSEncoding Filter </filter-name>
    <filter-class>
        util.JSEncodingFilter
    </filter-class>
</filter>
<filter-mapping>
    <filter-name>JSEncoding Filter</filter-name>
    <url-pattern>*.js</url-pattern>
</filter-mapping>

HTTP响应标头:

server: Glassfish server open source edition 3.1.2.2
x-powered-by: JSF/2.0
Accept-Ranges: bytes
ETag: w/"49813-1424163932095"
Last-Modified: Tue, 17 Feb 2015 09:05:32 GMT
Content-Type: text/javascript;charset=UTF-8
Transfer-Encoding: chuncked
Content-Encoding: gzip
vary:- Accept-Encoding
Date: Tue, 17 Feb 2015 09:52:44 GMTa

提前感谢,

0 个答案:

没有答案