在我们的网络应用程序中,我们有不同的形式,几乎所有形式的文本输入字段都有编码问题。 当输入包含特殊字符如Ͳ时,站点Bean中的值显示问号。变音符号和重音例如。毫无问题地进入Bean。
使用firebug跟踪的已发送请求看起来很好。标题显示了UTF-8字符集:
application/x-www-form-urlencoded; charset=UTF-8
请求参数显示正确:
formInputPanel:comment hello Ͳ
我google了很多,我找到的大多数解决方案告诉我通过web.xml实现过滤器来为请求设置正确的编码。问题是当调用过滤器时,编码被设置为UTF-8但参数已经被破坏并显示hello ?
我还在JBoss的系统属性的行中添加了以下内容,但没有任何结果:
<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实现。
也许有人可以给我一个提示,我可以在哪里找到问题。
答案 0 :(得分:0)
通过调整JBoss配置中数据库连接的connection-url
来解决问题:
jdbc:mysql://servername:3306/dbname?characterEncoding=UTF-8&useUnicode=true
。
IDE控制台输出中的编码不是UTF-8编码的。因此,请求参数显示在错误的编码中,但值是正确的。