我的 grails 网站正确显示 UTF8 字符,例如字符“è”,但无法在元标记中正确显示它们;例如,在元描述中,相同的字符显示为"è"
. 我从以 UTF-8 编码的文本文件中读取字符串
可能是什么问题呢?
Grails 版本是 2.2.1
更新
即使只是在元描述中硬编码一个字符串,我也有同样的问题。GSP 文件被视为 ISO-8859-2 编码,但我似乎无法将其转换为 UTF-8
我的 grails 网站正确显示 UTF8 字符,例如字符“è”,但无法在元标记中正确显示它们;例如,在元描述中,相同的字符显示为"è"
. 我从以 UTF-8 编码的文本文件中读取字符串
可能是什么问题呢?
Grails 版本是 2.2.1
更新
即使只是在元描述中硬编码一个字符串,我也有同样的问题。GSP 文件被视为 ISO-8859-2 编码,但我似乎无法将其转换为 UTF-8
您是否尝试禁用 sitemesh 对 gsp 页面的预处理?
在 Config.groovy 中:
grails.views.gsp.sitemesh.preprocess = false
我用 TagLib 修复了它
class SimpleTagLib {
def unescaped = { attrs ->
out << attrs.value
}
}
<meta content="${g.noEncode(value:'è')}" property="og:video" />
如果有人像我一样遇到这个问题,我已经通过创建一个以这种方式输出整个元标记的标记库来解决它:
标签库定义
def metaTag = { attrs ->
out << '<meta name="' + attrs.name + '" content="' + attrs.value + '"/>'
}
然后我在这样的 .gsp 文件中使用它:
<p:metaTag name="description" value="+ěšřčžáéíáý"></p:metaTag>