Используете и \ u .... и html-сущности в файле свойств? - PullRequest
0 голосов
/ 10 января 2011

Я наткнулся на несколько файлов xxx_fr.properties, xxx_en.properties и т. Д., И я немного удивлен, поскольку они содержат как html-сущности, так и \uxxxx экранирования.

Полагаю, с сущностями HTML все в порядке, если эти ресурсы обслуживаются чему-то, ожидающему HTML, но как насчет \uxxxx побега?

Указывает ли Java, что экранирование \uxxxx возможно в файле .properties?

Ответы [ 2 ]

4 голосов
/ 10 января 2011

Да - см. документацию для load(Reader), в которой указано

Символы в ключах и элементах могут быть представлены в escape-последовательностях похожи на те, которые используются для характера и строковые литералы.

, а затем уточняет, что

В escape-последовательности Unicode допускается только один символ 'u'.

Следовательно, определенно поддерживается escape-последовательность Unicode, содержащая один символ 'u'.

Обратите внимание, что здесь нет ничего особенного во время загрузки с сущностями HTML - например, String & будет просто рассматриваться в Java как строка, содержащая 5 символов. Как вы указали, это может быть интерпретировано особым образом, если позже оно будет выведено на какой-либо другой компонент.

С другой стороны, escape-последовательность \u0061 будет рассматриваться в Java как односимвольная строка «a» и будет неотличима от файла, содержащего этот символ.

3 голосов
/ 10 января 2011

Экранирование типа \ u - это стандартный способ представления символов Юникода в Java.Вы можете прочитать об этом в FAQ по интернационализации Java.С "Как мне указать не-ASCII строки в файле свойств?"вопрос, который вас больше всего интересует:

http://java.sun.com/javase/technologies/core/basic/intl/faq.jsp#properties-escape

И это касается не только свойств;Вы также можете использовать их в своем типичном коде Java.См. Блок представления текста:

http://java.sun.com/javase/technologies/core/basic/intl/faq.jsp#core-textrep

...