Как я преобразовываю специальные символы с помощью Java?

У меня есть строки как:

Avery® Laser & Inkjet Self-Adhesive

Я должен преобразовать их в

Avery Laser & Inkjet Self-Adhesive.

Т.е. удалите специальные символы и преобразуйте HTML специальные символы в регулярные.

8
задан Vladimir 18 February 2010 в 09:22
поделиться

3 ответа

Avery® Laser & Inkjet Self-Adhesive

Первое использование StringEscapeUtils # unescapeHtml4 () (или #unescapeXml () , в зависимости от исходного формата) для отмены экранирования и в и . Затем используйте String # replaceAll () на [^ \ x20- \ x7e] , чтобы избавиться от символов, которые не входят в печатаемый диапазон ASCII .

Резюме:

String clean = StringEscapeUtils.unescapeHtml4(dirty).replaceAll("[^\\x20-\\x7e]", "");

.. который производит

Avery Laser & Inkjet Self-Adhesive

(без конечной точки, как в вашем примере, но ее не было в оригинале;))

Тем не менее, это, однако, больше похоже на запрос на обходной путь , чем на запрос к решению . Если вы подробнее расскажете о функциональных требованиях и / или о происхождении этой строки, мы сможем предоставить правильное решение. ® , похоже, вызвано использованием неправильной кодировки для чтения строки, а и выглядят как вызванные использованием текстового синтаксического анализатора для чтения строки вместо полноценного HTML-парсера.

19
ответ дан 5 December 2019 в 06:09
поделиться

Может быть, вы могли бы использовать что-то вроде:

yourTxt = yourTxt.replaceAll("&", "&");

в каком-то проекте я сделал что-то вроде:

public String replaceAcutesHTML(String str) {

str = str.replaceAll("á","á");
str = str.replaceAll("é","é");
str = str.replaceAll("í","í");
str = str.replaceAll("ó","ó");
str = str.replaceAll("ú","ú");
str = str.replaceAll("Á","Á");
str = str.replaceAll("É","É");
str = str.replaceAll("Í","Í");
str = str.replaceAll("Ó","Ó");
str = str.replaceAll("Ú","Ú");
str = str.replaceAll("ñ","ñ");
str = str.replaceAll("Ñ","Ñ");

return str;

}

1
ответ дан 5 December 2019 в 06:09
поделиться

Вы можете использовать класс StringEscapeUtils из проекта Apache Commons Text .

6
ответ дан 5 December 2019 в 06:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: