0

ときどき、いくつかの Web サイトからある種の文字化けした応答が返ってきます。

これが私のコードです:

Stream responseStream = response.GetResponseStream();
buffer = new Byte[256];//
int bytesRead;
while ((bytesRead = responseStream.Read(buffer, 0, buffer.Length)) > 0)
{
   outStream.Write(buffer, 0, bytesRead);
   //resp=resp+ .UTF8.GetString(buffer, 0, bytesRead);
   resp=resp + Encoding.ASCII.GetString(buffer); //resp is string
}

www.google.co.in からリクエストすると、resp 文字列に次の文字が表示されます。

?\b\0\0\0\0\0??}y?F?????????Z??????{7m???oX?\r?Y???33 ??d;y????n?0?

この問題をどのように克服すればよいですか?エンコーディングに関連していますか?

4

2 に答える 2

6

受信した応答は GZip 圧縮されていたので、以下に示すように応答ストリームを解凍しました。

Stream responseStream = response.GetResponseStream();
responseStream = new GZipStream(responseStream, CompressionMode.Decompress);

これで、上で提供したコードを使用してストリームを読み取ることができます。

@カリヤン助けてくれてありがとう!!!

于 2011-09-28T08:27:01.773 に答える
3

HttpWebResponse からコンテンツを読み取る方法については、C# で GetResponseStream メソッドを使用する方法、およびHttpWebResponse と HttpWebRequest の使用方法を参照してください。それがあなたを助けることを願っています。

于 2011-09-27T09:37:29.520 に答える