Я знаю, что это старый, но я не смог найти ничего лучше после некоторого поиска, поэтому вот что я использую:
public static string TextToHtml(string text)
{
text = HttpUtility.HtmlEncode(text);
text = text.Replace("\r\n", "\r");
text = text.Replace("\n", "\r");
text = text.Replace("\r", "<br>\r\n");
text = text.Replace(" ", " ");
return text;
}
Если вы не можете использовать HttpUtility по какой-то причине,тогда вам нужно будет выполнить HTML-кодирование другим способом, и есть много мелких деталей, о которых нужно беспокоиться (не только <>&
).
HtmlEncode обрабатывает только специальные символы для вас, поэтому после этогоЯ преобразую любое сочетание возврата каретки и / или перевода строки в тег BR, а любые двойные пробелы - в один пробел плюс NBSP.
При желании вы можете использовать тег PRE для последней части, вот так:
<code>public static string TextToHtml(string text)
{
text = "<pre>" + HttpUtility.HtmlEncode(text) + "
"; вернуть текст;}