当我向特定的JSP文件添加Filter
时,输出中的阿拉伯字符显示为???
,即使页面编码设置为UTF-8
{{1} }和<% @page pageEncoding="UTF-8"%>
。
奇怪的是,在我添加<% response.setCharacterEncoding("UTF-8");%>
之前,所有阿拉伯语页面的输出都会显示正确的编码。有人能说出这个问题是如何引起的,以及我如何解决它?
答案 0 :(得分:5)
过滤器直接或间接提交响应和/或访问Writer
的{{1}}或OutputStream
,这导致JSP中的编码不再被更改。相应地修复过滤器中的代码。过滤器应该以任何方式不向响应主体写入任何内容。 JSP(用于HTML)或Servlet(用于其他内容)用于。
顺便说一句,您无需致电HttpServletResponse
。 <% response.setCharacterEncoding("UTF-8");%>
已隐含地执行此操作。