Simple text to HTML conversion

Depending on exactly what you are doing with the content, my typical recommendation is to ONLY use the <br /> syntax, and not to try and handle paragraphs.


Your other option is to take the text box contents and instead of trying for line a paragraph breaks just put the text between PRE tags. Like this:

<PRE>
Your text from the text box...

and a line after a break...
</PRE>

I know this is old, but I couldn't find anything better after some searching, so here is what I'm using:

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("  ", " &nbsp;");
    return text;
}

If you can't use HttpUtility for some reason, then you'll have to do the HTML encoding some other way, and there are lots of minor details to worry about (not just <>&).

HtmlEncode only handles the special characters for you, so after that I convert any combo of carriage-return and/or line-feed to a BR tag, and any double-spaces to a single-space plus a NBSP.

Optionally you could use a PRE tag for the last part, like so:

public static string TextToHtml(string text)
{
    text = "<pre>" + HttpUtility.HtmlEncode(text) + "</pre>";
    return text;
}

Tags:

C#

Html

Parsing