当我使用RequsetDispatcher运行JSP页面时,它会显示带有“ ???? ......”的西里尔字母内容。
RequestDispatcher view = request.getRequestDispatcher("/view.jsp");
这是我尝试过的:
我正在使用Apache Tomcat,并在VM选项中添加了它:
-Dfile.encoding=UTF-8
在jsp文件的开头:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
在web.xml中:
<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<page-encoding>utf-8</page-encoding>
</jsp-property-group>
</jsp-config>
<filter>
<filter-name>CharSet</filter-name>
<filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharSet</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
在tomcat配置文件conf / server.xml中的连接器中:
URIEncoding="UTF-8"
它仍然不起作用。有任何解决方法的想法吗?
编辑:在Servlet方法中添加response.setCharacterEncoding("UTF-8");
时修复。
答案 0 :(得分:1)
看来您的问题很可能与您使用的应用服务器有关。
请参考此线程,并尝试通过将应用程序服务器配置文件更改为使用UTF-8来解决您的问题-> How to get UTF-8 working in Java webapps
答案 1 :(得分:0)
缺少的部分是在Servlet的dopost方法的开头添加了response.setCharacterEncoding("UTF-8");
。