如果参数文本是ASCII,则将Grails空间解码为加号

时间:2013-04-30 09:23:37

标签: grails character-encoding ascii http-post

我在制作Grails应用程序时遇到问题,解决了POST请求参数。

每当参数仅包含ASCII字符时,文本中的所有空格都将解码为“+”符号。因此,而不是' 这是一个测试 '控制器得到' 这个+是+ a +测试 '参数值。

更多的是,如果参数文本甚至包含一个非ASCII字符,比如说,我们用西里尔字母'a'替换拉丁'a',问题就消失了

是的,在Intellij Idea IDE 11.x中运行Windows 7开发机器上的应用程序或部署到独立本地Tomcat 7.0.29的war存档时,一切正常。

将生产应用程序部署为war存档,并在SSL连接器端口8443上将所有依赖项部署到Ubuntu / Tomcat 7.0.21。连接器配置了属性 URIEncoding =“UTF-8”

Config.groovy中的设置是

  • grails.views.gsp.encoding =“UTF-8”
  • grails.converters.encoding =“UTF-8”
  • grails.views.gsp.sitemesh.preprocess = true

所有gsp在head元素中都有元声明 http-equiv =“Content-Type”content =“text / html; charset = UTF-8”

应用程序插件是 webxml:1.4.1 tomcat:$ grailsVersion hibernate:$ grailsVersion spring-security -core:1.2.7.3 spring-security-openid:1.0.4

作为最后一次尝试,我尝试将Grails版本从2.2.0升级到最新的2.2.2,但没有结果。

似乎我的情况与许多其他类似的情况相反

有人可以帮忙吗?

感谢。

1 个答案:

答案 0 :(得分:3)

我终于通过将Tomcat版本从7.0.21升级到7.0.39来解决了空间问题。没有修改任何应用程序文件。