Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JBoss 5.1-如何在UTF-8中发送HTTP响应?_Utf 8_Character Encoding_Jboss_Jboss5.x - Fatal编程技术网

JBoss 5.1-如何在UTF-8中发送HTTP响应?

JBoss 5.1-如何在UTF-8中发送HTTP响应?,utf-8,character-encoding,jboss,jboss5.x,Utf 8,Character Encoding,Jboss,Jboss5.x,我们正在从JBoss4.x迁移到5.1,字符编码有问题 在以前的JBoss版本中,扩展ASCII范围中的某些字符没有问题,但在新的JBoss中,它们会导致问题(例如,http响应不完整) 解决方案似乎是使用UTF-8,但我发现,让JBoss在Content-Type头中发送charset=UTF-8的唯一方法是在每个JSP页面的page指令中指定它。否则,http响应中的字符集指定为ISO-8859-1。我想找到一个全局解决方案,将字符集设置为UTF-8 我已经看到了关于JBoss字符编码的其他

我们正在从JBoss4.x迁移到5.1,字符编码有问题

在以前的JBoss版本中,扩展ASCII范围中的某些字符没有问题,但在新的JBoss中,它们会导致问题(例如,http响应不完整)

解决方案似乎是使用UTF-8,但我发现,让JBoss在Content-Type头中发送charset=UTF-8的唯一方法是在每个JSP页面的page指令中指定它。否则,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设置中
我使用了spring编码过滤器来设置编码:

<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> 

编码滤波器
org.springframework.web.filter.CharacterEncodingFilter
编码
UTF-8
强制编码
真的
编码滤波器
/*  

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

很难相信没有这样的配置。但是过滤器方法起作用了。请注意,过滤器设置了http响应的编码。您还需要设置file.encoding,因为此属性用于Java中的默认编码,所以所有读写器都默认使用此编码。当处理表单参数时,这个属性就会出现。这一点很好。我知道原问题要点中提到的两个地方。是否还有其他地方需要指定编码?