В процессе работы часто приходится кодировать/декодировать строки. Обычно это предполагается делать в рамках Веб-приложения, потому использование конструкции
HttpContext.Current.Server.HtmlEncode(source); * This source code was highlighted with Source Code Highlighter.
выглядит оправданным. Но за рамками Веб приложения этот код порождает NullReferenceException. Потому я бы советовал использовать
HttpUtility.HtmlEncode(source); * This source code was highlighted with Source Code Highlighter.
Так как это будет работать везде. Как бонус - расширяющие методы для энкодинга
- public static string ToHtmlEncoded(this String source)
- {
- var result = HttpUtility.HtmlEncode(source);
- if (result != null) result = result.Replace("'", "'");
- return result;
- }
- public static string ToHtmlDecoded(this String source)
- {
- var result = source.Replace("'", "'");
- result = HttpUtility.HtmlDecode(result);
- return result;
- }
* This source code was highlighted with Source Code Highlighter.
Здравствуйте. В меня вопрос по методу ToHtmlDecoded.
ОтветитьУдалитьВ строке 9 создаётся новая строковая переменная result, в которую записывается копия source, в которой символы &apos заменены на '.
В строке 10 переменной result присваивается результат работы метода HtmlDecode, который принимает на вход source.
Вопрос: к чему строка №9, если её результат никогда не будет задействован, так как значение переменной result гарантированно будет перезаписано в строке 10?
Действительно, это ошибка. Спасибо за уточнение. Поправил.
Удалить