Новая строка записывается как физический разрыв строки, поэтому вам нужно будет либо выполнить перенос до:
<code>response.Write("<pre>" + HttpUtility.HtmlEncode(str) + "
");
Или заменить новую строку на BR ПОСЛЕу вас есть HtmlEncoded (или он также закодирует BR):
response.Write(HttpUtility.HtmlEncode(str).Replace("\n", "<br />"));