StreamReader不指定编码,它会自己去猜测

解决方案 »

  1.   

    这个应该是自动的吧。或者读取是,head就可能有。
      

  2.   

    你扫描下网页的meta标签里有没有如 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 或chartset="gb2312"之类的。最常用的就是这两种。前一种用UTF-8,后一种就用ASCII
      

  3.   

    不知道你的这个什么 EasySpider.Spider.SaveResource 是什么东东。既然它保存了网页,那么它应该负责任设计此类协议。比如说它应该根据url的http通讯的头部信息来获取编码,或者(假设需要解析的话)根据页面内容解析出编码,然后他要保证将收到的信息重新用utf8或者unicocde编码方式保存起来。例如某个网页(运行时才能判断出)是GBK编码的,那么你的这个什么 EsaySpider 就应该负责将其以unicode或者utf8编码保存。你使用 new StreamReader(@filepath, Encoding.UTF8) 这显然是一种“乱弹琴”的动作,因为你根本不确定文件是utf8编码。尽管大部分情况下可能可以执行,但是这个根本没有解决什么 EsaySpider 的问题。
      

  4.   

    你这个问题,靠谱的结论只能先集中在一点:说明 EsaySpider 有问题。
      

  5.   

    一类是硬编码,写死utf-8或gb2312,另一种是运行时从http头或体的charset中获取
      

  6.   

    charset中的
    字节流获取编码
      

  7.   

    你主要是用作干什么啊,利用webbroswer控件不知道能不能实现你的目的。