我刚刚基于 activeweb 框架创建了新的网络应用程序,默认情况下它会显示我"?"对于所有外语字符。像这样:
? ????????? ?????? ???? ????????? ?? ?????? ??????????
? ??? ???? ?????????? ??????????? ????????
显示英文字符。
这是我的 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 内部的编码有关,或者我必须应用特殊设置。你知道怎么解决吗?
答案 0 :(得分: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编码以及响应。