Grails无法解码unicode字符

时间:2012-09-24 11:41:46

标签: grails

我有Grails应用程序的以下配置:

  1. Grails 1.3.7
     在config.groovy文件中设置以下内容  grails.views.default.codec="none"
     grails.views.gsp.encoding="UTF-8"
     grails.converters.encoding="UTF-8"

  2. Tomcat 7.0.22
    在tomcat的server.xml文件中设置以下内容 URIEncoding="UTF-8" useBodyEncodingForURI="true"

  3. 而且,在我的gsp页面中,我设置了charset=UTF-8",因为我想使用UTF-8字符编码。

    然后,在我输入unicode字符并提交表单并在控制器中的相关操作中检查参数dump时,在任何输入框中,unicode字符都是乱码。使用Firebug检查对服务器的浏览器请求显示正确编码的unicode字符并提交给服务器。

    但是,如果我做某事。喜欢 params.unicodeInput = new String(params.unicodeInput.getBytes("8859_1"), "UTF8");

    unicode字符被正确解码。我想知道为什么unicode字符在正常的浏览器请求中没有被正确解码,尽管浏览器正确发送了unicode字符。

    谢谢!

    修改
    我创建了一个具有相同配置的演示应用程序,在演示应用程序上一切都很好。此问题仅存在于此特定应用中。可能是由于其他一些已安装的插件?

    request.getCharacterEncoding()response.getCharacterEncoding()两种产品打印为UTF-8。

1 个答案:

答案 0 :(得分:1)

我不确定,但是当我遇到Grails + Tomcat的unicode问题时,我解决了将以下参数添加到Tomcat的setenv.sh的问题: JAVA_OPTS="-Djavax.servlet.request.encoding=UTF-8 -Dfile.encoding=UTF-8"

相关问题