> What isn't working is \r or \n independently
That's expected. Windows uses \r\n (ASCII 13 ASCII 10) together as the end of line sequence.
You could try this function to do the conversion.
public static string StandardizeNewLines(string s)
{
// Standardizes \r, \n, or \r\n to \r\n.
System.Text.StringBuilder sb = new System.Text.StringBuilder(s.Length);
char prevChar = '\0';
foreach (char c in s)
{
if (c == '\r')
sb.Append("\r\n");
else if (c == '\n')
{
if (prevChar != '\r')
sb.Append("\r\n");
}
else
sb.Append(c);
prevChar = c;
}
return sb.ToString();
}