При выводе строки в HTML по понятным причинам необходимо экранировать специальные символы в виде сущностей HTML ("& <>" и т. Д.).
Я рассмотрел две реализации этого на Java:
org.apache.commons.lang.StringEscapeUtils.escapeHtml (String)
net.htmlparser.jericho.CharacterReference.encode (CharSequence)
Оба экранируют все символы выше кодовой точки Unicode 127 (0x7F), которая фактически является всеми неанглийскими символами.
Это нормальное поведение, но строки, которые он генерирует, не читаются человеком, когда символы не являются английскими (например, на иврите или арабском языке). Я видел, что когда символы выше Unicode 127 не экранируются подобным образом, они по-прежнему корректно отображаются в браузерах - я полагаю, это потому, что HTML-страница имеет кодировку UTF-8, и поэтому эти символы понятны для браузера.
Мой вопрос: Могу ли я безопасно отключить экранирование символов Юникода выше кодовой точки 127 при экранировании сущностей HTML, если моя веб-страница имеет кодировку UTF-8?