Grails在Tomcat中请求参数编码问题

时间:2012-02-07 16:04:49

标签: tomcat grails character-encoding gorm

我的Grails应用程序无法正确解码请求参数。

在config.groovy中:

  • grails.views.gsp.encoding = "UTF-8"
  • grails.converters.encoding = "UTF-8"

我的所有gsp都在页面指令上使用contentType="text/html; charset=UTF-8"以及在head元素中使用<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

但是,当我从控制器中的param对象收到已发布的参数时,应用程序只会打印垃圾...

我正在使用部署在Tomcat 5上的Grails 1.3.7版本。其他已安装的插件除了tomcat:

hibernate 1.3.7 jquery 1.7.1 spring-security-core 1.2.6 webxml 1.4

编辑:从进一步的调试,我注意到该应用程序将在码头运行良好。因此我怀疑它必须是一个tomcat问题。我的问题类似于to this post(唉,我没有使用Shiro插件)。

任何人都可以帮忙吗?

3 个答案:

答案 0 :(得分:8)

您需要将URIEncoding='UTF-8'添加到conf / server.xml中的Connector元素,例如

<Connector port='8080' protocol='HTTP/1.1' connectionTimeout='20000'
           redirectPort='8443' URIEncoding='UTF-8' />

这里描述:https://wiki.apache.org/tomcat/FAQ/CharacterEncoding

答案 1 :(得分:0)

edit application.properties
add(update) line:
plugins.webxml=1.4.1

答案 2 :(得分:0)

由于没有做出最终结论,我想在同样的情况下分享我的表现。 Here可以找到更多讨论。

我是我的情况,我在本地PC上的windows下有开环境,包括本地MySQL。生产环境 - Centos 6,MySQL,Tomcat 6落后于Apache。

在开发环境中 - 一切都是o,但是在生产中 - 没有。 唯一对我有用的东西 - 除了Tomcat autoreconnect=true&useUnicode=true&characterEncoding=UTF-8

的建议外,还设置URIEncoding='UTF-8'

所以,问题在于正确设置java Driver for MySQL。