используя символьные объекты в файле свойств Java - PullRequest
1 голос
/ 13 сентября 2010

Я пытаюсь добавить текст в веб-приложение с помощью файла Java .properties.Я хочу, чтобы в тексте была тире.Если я добавлю символьную сущность, то:

myProp=Foo – Bar

или

myProp=Foo – Bar

я получу код в своем выводе.Если я добавлю буквальный символ в файл свойств (и сохраню как UTF-8):

mProp=Foo – Bar

, я получу буквенный символ в выводе.Как добавить символьную сущность к выводу ??

Ответы [ 2 ]

1 голос
/ 13 сентября 2010

Метод load(InputStream) класса Properties всегда декодирует текстовые файлы как ISO-8859-1.Он не «знает», какую кодировку использовал редактор, когда сохранял файл.

Вы можете создать свой собственный Reader с правильной кодировкой символов и использовать вместо него метод load(Reader).

Или вы можете придерживаться ISO-8859-1 и экранирование символов из других наборов символов с использованием экранирования Unicode (\uXXXX, например, "\ u8211" вместо "-").

0 голосов
/ 13 сентября 2010

Первый - это объект HTML, а второй - объект XML.Таким образом, чтобы первый отображался как тире, он должен отображаться без экранирования в виде HTML-файла, а чтобы второй отображался как тире, он должен отображаться без экранирования в виде XML-файла.Кроме того, файлы должны отображаться с использованием подходящего инструмента, который в данном случае может быть веб-браузером.

Отображаете ли вы его без экранирования в файле HTML / XML с помощью подходящего инструмента?

определите, экранирован ли он или нет, щелкните правой кнопкой мыши страницу в веб-браузере, выберите Просмотр источника , и вы должны проверить, является ли первый амперсанд не экранированным как &amp;, что в итоге будет выглядеть как1010 * или &amp;#8211; соответственно.Как избежать побега, зависит от технологии просмотра, которую вы используете для ее отображения.Если это, например, JSP / JSTL <c:out>, то вам следует установить атрибут escapeXml="false".

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