Tomcat 中的 Grails 请求参数编码问题
我的 grails 应用程序无法正确解码请求参数。
在 config.groovy 中:
grails.views.gsp.encoding = "UTF-8"
grails.converters.encoding = "UTF-8"
我所有的 gsp 在页面指令上都使用 contentType="text/html; charset=UTF-8"
以及 。
但是,当我从控制器中的 param 对象接收到发布的参数时,应用程序只打印垃圾...
我正在使用部署在 Tomcat 5 上的 Grails 1.3.7 版本。除 tomcat 之外的其他已安装插件:
hibernate 1.3.7 jquery 1.7.1 弹簧安全核心 1.2.6 webxml 1.4
编辑:通过进一步调试,我注意到该应用程序将在码头上正常运行。因此我怀疑这一定是tomcat的问题。我的问题与与这篇文章类似 (可惜我没有使用 Shiro 插件)。
谁能帮忙解决这个问题吗?
My grails app will not decode request parameters correctly.
In config.groovy:
grails.views.gsp.encoding = "UTF-8"
grails.converters.encoding =
"UTF-8"
All my gsp's use contentType="text/html; charset=UTF-8"
on the page directive as well as <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
in the head element.
However, when i receive the posted parameters from the param object in my controller, the app just prints garbage...
I'm using Grails 1.3.7 version deployed over Tomcat 5. Other installed plugins except tomcat:
hibernate 1.3.7
jquery 1.7.1
spring-security-core 1.2.6
webxml 1.4
EDIT: From further debugging, i've noticed that the app will run fine in jetty. Therefore i suspect it must be a tomcat issue. My issue is similar to this post (alas i'm not using the Shiro plugin).
Can anyone help with this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您需要将
URIEncoding='UTF-8'
添加到 conf/server.xml 中的Connector
元素,例如,此处描述:https://wiki.apache.org/tomcat/FAQ/CharacterEncoding
You need to add
URIEncoding='UTF-8'
to theConnector
elements in conf/server.xml, e.g.This is described here: https://wiki.apache.org/tomcat/FAQ/CharacterEncoding
虽然还没有最终定论,但我想分享一下我在同样情况下的经验。
在这里可以找到更多讨论。
我的情况是,我在本地PC上的Windows下有开发环境,包括本地MySQL。生产环境 - Centos 6、MySQL、Tomcat 6,落后于 Apache。
在开发环境中 - 一切正常,但在生产环境中 - 不行。
唯一对我有帮助的 - 除了 Tomcat
URIEncoding='UTF-8'
的建议之外,还设置了autoreconnect=true&useUnicode=true&characterEncoding=UTF-8
所以,问题出在正确设置 java Driver for MySQL 上。
As fas as no final conclusion made, I'd like to share my expierence in the same situation.
Here one can find more discussion.
I my case, I have dev environment under the windows on local pc including local MySQL. Production env - Centos 6, MySQL, Tomcat 6 behind Apache.
In dev environment - everything was o'k, but on production - no.
The only thing that help me - was set
autoreconnect=true&useUnicode=true&characterEncoding=UTF-8
additionally to recommendations both for TomcatURIEncoding='UTF-8'
So, the problem was in correct settings java Driver for MySQL.