Как использовать Unicode в message properties файлах
Внезапно столкнулся с тем, что IDEA перестала понимать галочку в настройках transparent native-to-ascii conversion. А при попытке запихнуть в файл русские символы на страницах отображались дичайшие кракозябры, которые получились путём отображения UTF-8 как ISO-8859-1.
Вообще странное решение использовать по умолчанию именно эту кодировку, но да ладно.
Как оказалось, при загрузке файлов используется
public void load(InputStream inStream) throws IOException |
Которая по умолчанию читает файлы в ISO-8859-1. Вот кусок Javadoc’а из DefaultPropertiesPersister.java
This is a capability that standard java.util.Properties unfortunately lacked up until JDK 1.5: were only able to load files using the ISO-8859-1 charset there.
Этот же метод по умолчанию вызывает Spring в методе
org.springframework.context.support.ReloadableResourceBundleMessageSource#loadProperties |
если не указана кодировка.
Чтобы указать её, в файле конфигурации (или в том месте, где вы описываете конфигурацию Spring context) надо добавить в бин
ReloadableResourceBundleMessageSource |
Свойство defaultEncoding с тем значением, которое вам нужно:
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource" p:basename="classpath:messages" p:defaultEncoding="utf-8" /> |
Последние комменатрии