在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
提前感谢,