升级到grails 1.3.2时遇到<g:layoutTitle default="测试 - Grails" /> 显示是乱码

xiaobo_ 2010-07-12

今天升级项目到grails 1.3.2时,遇到一个奇怪的问题
页面代码:<g:layoutTitle default="测试 - Grails" />

显示出来中文是乱码,请问哪位大侠遇到这种情况,应该怎么样解决,十分感谢!

 

页面代码:

 

 

<head>

        <title><g:layoutTitle default="测试 - Grails" /></title>

        <link rel="stylesheet" href="${resource(dir:'css',file:'main.css')}" />

        <link rel="shortcut icon" href="${resource(dir:'images',file:'favicon.ico')}" type="image/x-icon" />

        <g:layoutHead />

        <g:javascript library="application" />

</head>

 

 

 

 

 

xiaobo_ 2010-08-04
此问题已解决
caihexi 2010-09-01
请问是如何解决的?我也是因为中文乱码的原因,所以一直都没从1.2.0升级到1.3.x。
xiaobo_ 2010-09-10
我当时用的版本提:grails1.3.2

原因应该算是grails1.3.2的一个bug,框架中的编码是写死的,全部是UTF-8,而我们用tomcat等运行项目时,读取的确是操作系统的编码 GBK,这就导致了乱码。

reload 问题: 应该跟服务器上tomcat 默认编码有关。 修改  startup.bat 在启动 tomcat 时加上 "-Dfile.encoding=UTF-8" (可以参考 startup.bat中其它的 -Dxxx.xxx=xxx ,用相同方式加入) ,应该就可以解决。如果服务器是linux 就没这个问题。

如果是println打印中文乱码的话,那么就在初始化文件中增加
System.out = new  PrintStream(System.out, true, "GBK")
就应该了,你测试一下吧,

这是我的一点经验,不知道现在grails版本修改了这个bug 没有。
caihexi 2010-09-25
谢谢,我们的TOMCAT是一位高手同事管理的,自己做了一些修改的,上面原先跑的一些程序需要使用GBK。GRAILS中文件的编码都是使用了UTF-8,也不想改了。
目前准备使用GRAILS的MESSAGE标签对程序代码进行重新制作。虽然很麻烦很慢,但可以无视以后GRAILS任何版本的这个BUG了。很可能GRAILS不认为这是个BUG。
目前用用1.2.0似乎也没什么大问题。等慢慢改好之后再升级了。
Global site tag (gtag.js) - Google Analytics