急~~socket下载网页
如题 我能接收到网页信息,但只有http头正常,内容全是乱码。是我接收不对,还是转换编码不对?网页编码是UTF-8,用UTF-8和ASCII都是乱码。
下面是接收
Byte[] bytesReceived = new Byte[1024];
int bytes = 1;
string page = "";
do
{
bytes = socket.Receive(bytesReceived, bytesReceived.Length, 0);
page += Encoding.ASCII.GetString(bytesReceived, 0, bytes);
}while (bytes > 0);
--------------------编程问答-------------------- 试试:
page += Encoding.Default.GetString(bytesReceived, 0, bytes); --------------------编程问答-------------------- 还是返回
HTTP/1.1 200 OK
X-Powered-By: PipeBoost/2.4
Date: Tue, 15 Apr 2008 17:49:19 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: SBO
X-Powered-By: ASP.NET
Content-Type: text/html; charset=utf-8
Cache-Control: private
X-AspNet-Version: 2.0.50727
Content-Encoding: gzip
Content-Length: 623
?
--------------------编程问答-------------------- 就下www.163.com 都不行 www.baidu.com可以 --------------------编程问答-------------------- 使用判断charset = "***"
utf-8 使用 默认
其他的使用System.Text.Encoding.GetEncoding("utf-8")来转换格式
163应该是gbk的
所以会出错.. --------------------编程问答-------------------- 你肯定不懂这行是什么意思。
Content-Encoding: gzip
你得到的信息是经过压缩过的,表示你发送请求的时候告诉服务器你可以接受压缩过的内容。
你要改发送代码。 --------------------编程问答-------------------- 没有想到.net 2.0里面竟然有一个gzip的stream,你有福了,用GZipStream把它读出来就好了。 --------------------编程问答-------------------- webclient 应该就可以,
下载网页和下载文件没有本质区别.
--------------------编程问答-------------------- 不同的网站是不一样的
补充:.NET技术 , C#