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

pal*_*laa 2 java jsp character-encoding servlet-filters

当我添加Filter到特定JSP文件,在输出阿拉伯字符看起来像???,即使在页面编码被设置为UTF-8通过<% @page pageEncoding="UTF-8"%><% response.setCharacterEncoding("UTF-8");%>.

奇怪的是,在我添加之前Filter,所有阿拉伯语页面的输出都显示正确的编码.有人能说出这个问题是如何引起的,以及我如何解决它?

Bal*_*usC 5

该过滤器是直接或间接的commiting应答和/或访问WriterOutputStream所述的HttpServletResponse引起该编码不能再在JSP改变.相应地修复过滤器中的代码.过滤器应该以任何方式不向响应主体写入任何内容.JSP(用于HTML)或Servlet(用于其他内容)用于.

顺便说一下,你不需要打电话<% response.setCharacterEncoding("UTF-8");%>.在<%@page pageEncoding="UTF-8"%>已经含蓄地做到这一点.