我使用的是JBoss 7.1.3。
Café
它被服务器接收为
Café
我在网上找到的纠正这一问题的唯一建议是将这些系统属性添加到$JBOSS_HOME/standalone/configuration/standalone.xml中...
<system-properties>
…
<property name="org.apache.catalina.connector.URI_ENCODING" value="UTF-8"/>
<property name="org.apache.catalina.connector.USE_BODY_ENCODING_FOR_QUERY_STRING" value="true"/>
</system-properties>
然而,即使在重新启动服务器后,服务器端仍然无法正确接收我的特殊字符。我还能做些什么来正确解释这些字符呢?
5条答案
按热度按时间jtjikinw1#
为我修复*JBOSS 7.1.0测试版或更高版本*的 * 编码 * 的方法是将以下行包含到
standalone.conf
文件中,直接位于bin之下或
在bin**或
domain.conf
下的standalone.conf
**中尝试以下操作(以适合您的为准)7cjasjjr2#
e-acute是U+00 E9。使用UTF-8编码,得到0xC 3 0xA 9。如果假设您的终端或其他设备使用的是cp 1252或类似格式,则将其转换为é。别这么做。告诉你的老板用UTF-8。
yhxst69z3#
您是否尝试过以下选项?
设置启动参数,
https://issues.jboss.org/browse/JBEAP-13710
xlpyo6sf4#
请尝试将
org.apache.catalina.connector.USE_BODY_ENCODING_FOR_QUERY_STRING
设置为false
。最近也遇到了同样的问题,上述配置是Jboss EAP 6.4.0的核心问题。
看起来不管您在
URI_ENCODING
中设置什么,如果USE_BODY_ENCODING_FOR_QUERY_STRING
设置为true(并且body没有编码),它将默认为ISO-8859-1。就像在tomcat文档中一样:https://tomcat.apache.org/tomcat-8.5-doc/config/http.html(查找
useBodyEncodingForURI
连接器属性)。xdyibdwo5#
在JBoss 6.4中也有同样的问题。JVM设置正确,显示特殊字符正常,但POST请求以ISO-8859-1编码。
有人把一个过滤器设置的编码没有运气。
最后的问题是这个过滤器不是第一个被执行的。我做了什么把这个“UTF8过滤器”放在第一个位置,它解决了这个问题。诀窍是第一个过滤器执行设置编码。似乎另一个过滤器确实设置了错误的编码。
该类使用以下代码实现javax.servlet.Filter: