StreamReader出毛病了?还是网页加入了特殊字符?

ray_in_fog 2006-06-05 10:46:53
使用StreamReader的ReadToEnd
读取网页,大多数都很正常,唯独有些网页只能读到一半就读不下去了
比如http://house.sohu.com/这个地址,还有这个地址里的好多网页都读不完整,奇怪
有谁知道是怎么回事啊?
...全文
162 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
elivehai 2006-06-06
  • 打赏
  • 举报
回复
思归的答案不错.在这里就说中文了,没必要说英文了,真是的.
我们都是中国人嘛.
saucer 2006-06-06
  • 打赏
  • 举报
回复
also, make sure you are setting the encoding

StreamReader reader = new StreamReader(........., System.Text.Encoding.GetEncoding("GB2312"));
saucer 2006-06-06
  • 打赏
  • 举报
回复
how did you read the remote file? you need to use a loop or try ReadToEnd, see

Retrieving HTTP content in .NET
http://www.west-wind.com/presentations/dotnetWebRequest/dotnetWebRequest.htm
ray_in_fog 2006-06-06
  • 打赏
  • 举报
回复
哦,多谢raypp(从头做起),这回解决了!
raypp 2006-06-06
  • 打赏
  • 举报
回复
楼上的所有方法都没有问题,只是那个网页有问题。
页面源代码中间被加了'\0',所以即便读取全了,也显示不全。
防抓取的小伎俩之一。
ray_in_fog 2006-06-06
  • 打赏
  • 举报
回复
我试了各种编码 1252 UTF-8 GB2312 都没戏
就是这个网址 http://house.sohu.com/ 大家试试看吧
ray_in_fog 2006-06-06
  • 打赏
  • 举报
回复
saucer(思归)的方法试验过了,一样的读不完整
很是费解
ray_in_fog 2006-06-06
  • 打赏
  • 举报
回复
我用的是
{
try{
Uri myUri = new Uri(url);
WebRequest myWebRequest = WebRequest.Create(myUri);
Stream myGetStream = myWebRequest.GetResponse().GetResponseStream();
StreamReader myReader = new StreamReader(myGetStream, Encoding.GetEncoding("gb2312"));
return myReader.ReadToEnd();
}
catch{……}
}
另外使用WebClient也一样读不全
zerocoin 2006-06-05
  • 打赏
  • 举报
回复
读取网页还是用HTTPREQUEST的好.你试试看先.
ray_in_fog 2006-06-05
  • 打赏
  • 举报
回复
源代码另存到本地后可以正常读取,但是直接从服务器读取就不行

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧