阿拉伯字符看起来像???将过滤器添加到JSP页面后

时间:2010-09-19 22:21:10

标签: java jsp character-encoding servlet-filters

当我向特定的JSP文件添加Filter时,输出中的阿拉伯字符显示为???,即使页面编码设置为UTF-8 {{1} }和<% @page pageEncoding="UTF-8"%>

奇怪的是,在我添加<% response.setCharacterEncoding("UTF-8");%>之前,所有阿拉伯语页面的输出都会显示正确的编码。有人能说出这个问题是如何引起的,以及我如何解决它?

1 个答案:

答案 0 :(得分:5)

过滤器直接或间接提交响应和/或访问Writer的{​​{1}}或OutputStream,这导致JSP中的编码不再被更改。相应地修复过滤器中的代码。过滤器应该以任何方式不向响应主体写入任何内容。 JSP(用于HTML)或Servlet(用于其他内容)用于。

顺便说一句,您无需致电HttpServletResponse<% response.setCharacterEncoding("UTF-8");%>已隐含地执行此操作。