Как безопасно кодировать HTML-контент, который уже может быть закодирован в HTML?

Мне нужно HTML-кодировать некоторый текст, который может или не может уже быть закодирован в HTML (возможно, только частично). Безопасно ли следующее? Существуют ли какие-либо символы/кодировки, которые могут вызвать неожиданное поведение?

HttpUtility.HtmlEncode(HttpUtility.HtmlDecode(text))

Спасибо


person Andrew Bullock    schedule 11.01.2011    source источник
comment
Единственное, чего я могу бояться, так это того, что текст мог быть закодирован по-другому? Если только вы не являетесь единственным человеком, кодирующим текст с помощью HttpUtility.HtmlEncode, то, думаю, все в порядке.   -  person Jón Trausti Arason    schedule 11.01.2011
comment
кодировка исходит от TinyMCE   -  person Andrew Bullock    schedule 11.01.2011
comment
что означает, что он может быть введен пользователем (например), или TinyMCE мог его закодировать. В принципе, я не могу ему доверять, но он должен быть действительным. Если пользователь ввел неверную кодировку, то это его проблема, если она выглядит смешно, не беспокойтесь об этом.   -  person Andrew Bullock    schedule 11.01.2011


Ответы (2)


Ваша логика "HttpUtility.HtmlEncode(HttpUtility.HtmlDecode(text))" безопасна. Существует стандарт кодирования символов HTML. Посмотрите.

person HABJAN    schedule 11.01.2011
comment
Мне просто интересно, есть ли способ, которым звонок Decode может что-то испортить, я так не думал, но я подумал, что сначала посоветуюсь с людьми - person Andrew Bullock; 11.01.2011

Встроенного функционала нет. Но я бы использовал:

 return 
     HttpUtility.HtmlDecode(text)!=text ? text : HttpUtility.HtmlEncode(text);
person Aliostad    schedule 11.01.2011