Отмена экранирования сущностей в Java

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

Я думаю применить все функции unescape из Apache commons lang StringEscapeUtils

Мой вопрос: будет ли это иметь какое-либо влияние на порядок, в котором будут применяться функции unescape, а также могу ли я применить все функции unescape, не влияя на конечный результат?


person Sudar    schedule 16.05.2013    source источник
comment
Что произойдет, если вы... попробуете?   -  person Brian Roach    schedule 16.05.2013
comment
Я попробовал это в образце файла, и, похоже, это не вызвало никаких проблем. Но окончательных данных, в которых я буду это применять, сейчас у меня нет. Вот почему я хотел знать, будет ли использование всех неэкранированных функций иметь какой-либо эффект или нет.   -  person Sudar    schedule 16.05.2013
comment
уже был дан ответ, я думаю stackoverflow.com/questions/3537706/   -  person Adam Garner    schedule 16.05.2013


Ответы (1)


StringEscapeUtils предназначены для использования парами: если вы используете escapeXML, вы должны использовать unescapeXML для получения исходной строки. При этом, если вы абсолютно уверены, что ваша строка экранирована с использованием правильного форматирования, вы можете использовать функцию unescape. Всегда проверяйте это в первую очередь.

person Farlan    schedule 16.05.2013
comment
Моя проблема в том, что я понятия не имею о входных данных. Он мог сбежать или нет :( - person Sudar; 16.05.2013
comment
Если вы не знаете свой ввод, как вы можете проверить свой вывод? Лучше всего начать с некоторых утверждений. Вы можете использовать синтаксический анализатор DOM, чтобы просто убедиться, что это законный XML, прежде чем экранировать его. - person Christian Bongiorno; 16.05.2013