0

我们正在从 JBOSS 4.x 迁移到 5.1,并且遇到了字符编码问题。

扩展 ASCII 范围内的某些字符在以前的 JBoss 版本下是可以的,但是对于新的 JBoss,它们会导致问题(例如,不完整的 http 响应)。

解决方案似乎是使用 UTF-8,但我发现导致 JBoss 在 Content-Type 标头中发送 charset=UTF-8 的唯一方法是在每个 JSP 页面的页面指令中指定这一点。否则,http 响应中的字符集被指定为 ISO-8859-1。我想找到一个将字符集设置为 UTF-8 的全局解决方案。

我见过其他几个关于 JBoss 字符编码的问题,但似乎都没有解决 http 响应的编码问题。

我试过没有成功:

  • 在 jboss/bin/run.bat 中,设置 set "JAVA_OPTS=-Dfile.encoding=utf-8 %JAVA_OPTS%"
  • 在 jboss/server//deploy/jbossweb.sar/server.xml 设置
4

1 回答 1

1

我使用弹簧编码过滤器来设置编码:

<filter>
 <filter-name>encodingFilter</filter-name>  
 <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>  
 <init-param>  
    <param-name>encoding</param-name>  
    <param-value>UTF-8</param-value>  
 </init-param>  
 <init-param>  
    <param-name>forceEncoding</param-name>  
    <param-value>true</param-value>  
 </init-param>  
</filter>  
<filter-mapping>  
 <filter-name>encodingFilter</filter-name>  
 <url-pattern>/*</url-pattern>  
</filter-mapping> 

如果您不使用 spring,则需要一个设置编码的 servlet 过滤器。

于 2012-10-09T18:52:18.710 回答