JSP不显示西里尔字母的内容吗?

时间:2018-12-02 09:15:45

标签: java jsp tomcat servlets

当我使用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");时修复。

2 个答案:

答案 0 :(得分:1)

看来您的问题很可能与您使用的应用服务器有关。

请参考此线程,并尝试通过将应用程序服务器配置文件更改为使用UTF-8来解决您的问题-> How to get UTF-8 working in Java webapps

答案 1 :(得分:0)

缺少的部分是在Servlet的dopost方法的开头添加了response.setCharacterEncoding("UTF-8");