JSF 请求参数编码问题

JSF request parameter encoding struggles

在我们的 Web 应用程序中,我们有不同的表单,几乎所有表单在文本输入字段上都有编码问题。 当输入包含特殊字符如 Ͳ 时,站点 Bean 中的值会显示一个问号。元音变音和重音,例如。毫无问题地到达 Bean。

用 firebug 跟踪的已发送请求看起来很好。 header 显示 UTF-8 字符集:

application/x-www-form-urlencoded; charset=UTF-8

request-parameter 正确显示:

formInputPanel:comment    hello Ͳ

我在谷歌上搜索了很多,我发现的大多数解决方案都告诉我通过 web.xml 实现过滤器来为请求设置正确的编码。问题是当调用过滤器时,编码设置为 UTF-8,但参数已经损坏并显示 hello ?

我还在 JBoss 的 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"/>

除登录页面外,所有页面均出现此问题。那里的参数很好地传递给了 Bean。登录页面是通过 JSP-Page 和 LoginServlet.

实现的

也许有人可以给我提示,我还能在哪里搜索问题。

问题已通过将 JBoss 配置中数据库连接的 connection-url 调整为:

解决

jdbc:mysql://servername:3306/dbname?characterEncoding=UTF-8&amp;useUnicode=true.

IDE 的控制台输出中的编码不是 UTF-8 编码。所以请求参数以错误的编码显示,但值是正确的。