1

我刚刚创建了基于activeweb框架的新 Web 应用程序,默认情况下它显示“?” 对于所有外语字符。像这样的东西:

? ???????????????????? ?????????

? ?????????????????????? ??????

英文字符显示正常。

这是我的web.xml配置:

<display-name>activeweb</display-name>

<session-config>
    <session-timeout>30</session-timeout>
</session-config>


<filter>
    <filter-name>dispatcher</filter-name>
    <filter-class>org.javalite.activeweb.RequestDispatcher</filter-class>
    <init-param>
        <param-name>exclusions</param-name>
        <param-value>css,img,fonts,images,js,html,GwtExample,ico</param-value>
    </init-param>
    <init-param>
        <param-name>root_controller</param-name>
        <param-value>home</param-value>
    </init-param>
</filter>


<filter-mapping>
    <filter-name>dispatcher</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

<welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list>

我希望这个问题可能与activeweb内部的编码有关,或者我必须应用特殊设置。你知道如何解决吗?

4

1 回答 1

0

发生这种情况是因为 ActiveWeb 默认不做任何编码,而你得到的来自 servlet 容器。为了强制使用特定的编码(我假设是 UTF-8),你需要在 web.xml 中添加一行配置文件:

<filter> <filter-name>dispatcher</filter-name> <filter-class>org.javalite.activeweb.RequestDispatcher</filter-class> <init-param> <param-name>exclusions</param-name> <param-value>css,images,js,ico</param-value> </init-param> <init-param> <param-name>root_controller</param-name> <param-value>home</param-value> </init-param> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter>

这将在请求和响应时强制使用 UTF-8 编码。

于 2014-11-17T18:04:49.090 回答