大なり小なり記号や引用符などの処理に問題があります。
この問題を解決するには、HttpUtility.HtmlDecodeを試してください。
残りについては、これを試してください(source):
private void SaveWebPage_as_HTML()
{
// Initialize the WebRequest.
string urlToConvert = (System.Web.HttpContext.Current.Request.Url).ToStr ing();
WebRequest myRequest = WebRequest.Create(urlToConvert);
// Return the response.
WebResponse myResponse = myRequest.GetResponse();
// Obtain a 'Stream' object associated with the response object.
Stream ReceiveStream = myResponse.GetResponseStream();
Encoding encode = System.Text.Encoding.GetEncoding("utf-8");
// Pipe the stream to a higher level stream reader with the required encoding format.
StreamReader readStream = new StreamReader(ReceiveStream, encode, true, 255);
// Read 256 charcters at a time.
Char[] read = new Char[256];
int count = readStream.Read(read, 0, 256);
using (StreamWriter sw = new StreamWriter("output.html"))
{
while (count > 0)
{
// Dump the 256 characters on a string and display the string onto the console.
String str = new String(read, 0, count);
sw.Write(str);
count = readStream.Read(read, 0, 256);
}
}
// Close the response to free resources.
myResponse.Close();
}
使用されるエンコーディング (ここでは utf-8) には細心の注意を払ってください。「読みやすさ」の問題が発生する可能性があります。