我的 Grails 应用程序有以下配置:
圣杯 1.3.7
在 config.groovy 文件中设置以下内容
grails.views.default.codec="none"
grails.views.gsp.encoding="UTF-8"
grails.converters.encoding="UTF-8"
雄猫7.0.22
在 tomcat 的 server.xml 文件中设置以下内容
URIEncoding="UTF-8" useBodyEncodingForURI="true"
而且,在我的 gsp 页面中,我设置了charset=UTF-8"
因为我想使用UTF-8字符编码。
然后,当我在任何输入框中输入 unicode 字符并提交表单并检查控制器中关联操作的参数转储时,unicode 字符都是乱码。使用 Firebug 检查浏览器对服务器的请求,显示 unicode 字符已正确编码并提交给服务器。
但是,如果我做某事。喜欢params.unicodeInput = new String(params.unicodeInput.getBytes("8859_1"), "UTF8");
unicode 字符已正确解码。我想知道为什么尽管浏览器正确发送了 unicode 字符,但正常浏览器请求上的 unicode 字符没有被正确解码。
Thanks!!
Edit
我创建了一个具有相同配置的演示应用程序,演示应用程序上的一切看起来都很好。此问题仅存在于该特定应用程序中。是否是由于安装了其他一些插件所致?
并打印request.getCharacterEncoding()
and response.getCharacterEncoding()
两者都会产生 UTF-8。
我不确定,但是当我使用 Grails + Tomcat 遇到 unicode 问题时,我通过向 Tomcat 的 setenv.sh 添加以下参数解决了该问题:JAVA_OPTS="-Djavax.servlet.request.encoding=UTF-8 -Dfile.encoding=UTF-8"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)