Wenn man ein Textfile mit dem StreamReader einliest, so wird der Inhalt per default UTF8 kodiert, was Probleme mit deutschen Umlauten mit sich bringt.
So funktioniert es (zumindest auf einem deutschen System):
StreamReader sr = new StreamReader(path, System.Text.Encoding.Default);
StringBuilder body = new StringBuilder(sr.ReadToEnd());
sr.Close();