Grails 3.2 Resource Bundle не отображает текст с правильной кодировкой

Начиная с Grails 3.2.8 (и выше) комплект ресурсов в моем приложении не работает должным образом. Немецкие умлауты (или общие символы UTF-8, которые не являются частью ASCII) отображаются с помощью. Например, немецкое слово über отображается как ber.

Сначала я подозревал processResources Gradle задачи, которые выполняет native2ascii, Но мои файлы комплекта ресурсов UTF-8 правильно скопированы в build/resources/main/*.properties и преобразован в US-ASCII,

Исходный файл явно кодируется с использованием UTF-8.

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,

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

Все не ASCII-символы экранированы.

event.free.space={0,number} von {1,number} verf\u00fcgbar

При отладке моего приложения, работающего как автономная WAR, используя

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

Я заметил, что org.grails.spring.context.support.PluginAwareResourceBundleMessageSource загружает мой messages_de.properties файл с использованием кодировки UTF-8, так как в нем регистрируется следующее сообщение.

s.PluginAwareResourceBundleMessageSource : Loading properties [messages_de.properties] with encoding 'UTF-8'

После загрузки файла свойств в java.util.Properties класс, я вижу все не ASCII символы, например,.

Любая подсказка, что здесь происходит не так?

1 ответ

У меня была похожая проблема, и для меня решение было в следующем ответе: /questions/1202935/spring-resourcebundlemessagesource-kodirovka-dlya-cheshskogo-messageresourcegetmessage/1202944#1202944

в resources.groovy установить defaultEncoding в 'UTF-8' для messageSource боб.

Другие вопросы по тегам