Grails 3.2 Resource Bundle不显示编码正确的文本

时间:2017-06-05 09:32:41

标签: grails internationalization grails-3.2

自Grails 3.2.8(及更高版本)以来,我的应用程序中的资源包无法按预期工作。德语变音符号(或不属于ASCII的一般UTF-8字符)用 显示。例如。德语单词über显示为 ber

首先,我怀疑执行processResources的{​​{1}} Gradle任务。但我的UTF-8资源包文件已正确复制到native2ascii并转换为build/resources/main/*.properties

源文件显然是使用UTF-8进行编码。

US-ASCII

运行 file -I grails-app/i18n/messages_de.properties grails-app/i18n/messages_de.properties: text/plain; charset=utf-8 ./gradlew clean processResources成功处理了所有资源包文件,并使用native2ascii进行编码。

US-ASCII

所有非ASCII字符都被转义。

file -I build/resources/main/messages_de.properties build/resources/main/messages_de.properties: text/plain; charset=us-ascii

使用

调试作为独立WAR运行的应用程序时
event.free.space={0,number} von {1,number} verf\u00fcgbar

我注意到java -jar -server -Dserver.address=127.0.0.1 -Dserver.port=50000 \ -Dgrails.env=prodMySQL -Djava.security.egd=file:/dev/./urandom \ -Xmx768M -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 \ build/libs/my.war 使用UTF-8编码加载了我的org.grails.spring.context.support.PluginAwareResourceBundleMessageSource文件,因为它记录了以下消息。

messages_de.properties

将属性文件加载到s.PluginAwareResourceBundleMessageSource : Loading properties [messages_de.properties] with encoding 'UTF-8' 类后,我将所有非ASCII字符视为例​​如

有什么线索在这里出错?

1 个答案:

答案 0 :(得分:0)

我有一个类似的问题,对我来说,解决方案是在此答案中: https://stackoverflow.com/a/34268213/6899501

resources.groovy中,将defaultEncoding bean的'UTF-8'设置为messageSource