Я бы пошел за Thorbjørn Ravn Andersen ответ: Файл .properties был отредактирован в специализированном редакторе, который автоматически сохраняет символы Юникода в его записи ASCII (\ uXXXX).
Александр Погребняк упомянул такой редактор, и они довольно распространены в "мире Java".
mfloryan упоминает native2ascii
инструмент (который поставляется с JDK), который выполняет преобразование под капотом.
Теперь некоторые сведения обо всем этом:
Механизмы Java i18n в основном основаны на классе PropertyResourceBundle
, который ApiDoc сообщает:
Для создания экземпляра PropertyResourceBundle из InputStream требуется, чтобы входной поток былзакодировано в ISO-8859-1.В этом случае символы, которые не могут быть представлены в кодировке ISO-8859-1, должны быть представлены Unicode Escapes
Таким образом, в качестве обходного пути (!) В мире Java вы можете использоватьnative2ascii
в JDK для преобразования файлов .properties или, в качестве альтернативы, использования специализированного редактора, который сохраняет «Unicode Escape», но позволяет редактировать действительные символы Unicode.
В * 1037Платформа * Spring , напротив, механизмы i18n по умолчанию основаны на классе ResourceBundleMessageSource
Spring, который полностью поддерживает Unicode. Grails 'Механизмы i18n основаны на Spring.
Значение по умолчанию Grails grails.enable.native2ascii = true
предназначено для включения смешанных сред Spring / Grails и Java.- Вам не понадобится ни инструмент native2ascii
, ни специальный редактор файлов .properties , если вы не используете собственный ResourceBundle.getBundle("foo").getKey("bar")
Java, и если вы не работаете с "классической Java" JSTL илиТеги JSF.
С Grails и Spring вы можете использовать файлы Unicode .properties такими, какие они есть.