пример использования PropertyResourceBundle (Reader reader) в Java6 - PullRequest
2 голосов
/ 04 февраля 2011

У меня есть несколько файлов messages.properties в кодированных файлах utf-8 (messages_en_US.properties, messages_fr.properties, ...). Среди этих файлов свойств у меня есть некоторые для азиатских языков. Это означает, что символы не могут быть представлены в кодировке ISO-8859-1 и должны быть представлены Unicode Escape. Я не хочу это делать. Основываясь на документации по ссылке ниже, если я использую конструктор, который принимает Reader, у него нет этого ограничения.

http://download.oracle.com/javase/6/docs/api/java/util/PropertyResourceBundle.html

Но, если я использую этот конструктор, я теряю функциональность, которая определяет правильный файл свойств в зависимости от локали.

Может ли кто-нибудь помочь мне с этим?

Ответы [ 2 ]

0 голосов
/ 24 июня 2011

Кажется, они действительно хотят, чтобы вы все еще использовали native2ascii. : - (

Таким образом, вы можете кодировать свои азиатские символы как последовательности \ uxxxx. Механизм ResourceBundle может загружать их в этом формате.

Что мы делаем, так это то, что мы редактируем файлы свойств в UTF-8, а скрипт сборки запускает на них native2ascii.

Видя, что Java6 наконец-то поддерживает различные кодировки для свойств, когда вы загружаете их вручную, было бы неплохо, если бы эта поддержка распространялась (вверх?) На другие части, основанные на свойствах, такие как пакеты ресурсов.

0 голосов
/ 05 февраля 2011

Вы не должны создавать экземпляр PropertyResourceBundle напрямую.Используйте взамен ResourceBundle.getBundle () .

Также взгляните на второй пример в ResourceBundle.Control , чтобы узнать, как загружать альтернативные форматы при использовании иерархии разрешений.Пример предназначен для загрузки свойств XML, но должен быть адаптируем для использования InputStream в кодировке UTF-8.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...