首页 新闻 搜索 专区 学院

c#抓取网页内容出现乱码问题

0
悬赏园豆:200 [已关闭问题] 关闭于 2012-09-01 15:56

我想做个用c#抓取网页内容的程序,其中汉字显示为乱码,网页编码为GBK,求解决方案:我写了段代码没有起作用,大家帮看看,谢谢

        public string ConvertEncdoing(string source)
        {
            byte[] sourceBytes = Encoding.Unicode.GetBytes(source);
            byte[] desBytes = Encoding.Convert(Encoding.Unicode, Encoding.GetEncoding("GBK"), sourceBytes);
            return Encoding.GetEncoding("GBK").GetString(desBytes);
        }
问题补充:

如果大家需要的话,我可以私信 目标网页网址

会长的主页 会长 | 大侠五级 | 园豆:9000
提问于:2012-09-01 14:15
< >
分享
所有回答(4)
0

看看这篇文章是否可以帮到你:http://blog.csdn.net/qshpeng/article/details/1541980

编码转换试试这个:

byte[] utfBytes = Encoding.Unicode.GetBytes(Message);
byte[] gbkBytes = Encoding.Convert(Encoding.Unicode, Encoding.GetEncoding("GB2312"), utfBytes);
stringmsg =Encoding.GetEncoding("GB2312").GetString(gbkBytes);
artwl | 园豆:16526 (专家六级) | 2012-09-01 14:20

不起作用

支持(0) 反对(0) 会长 | 园豆:9000 (大侠五级) | 2012-09-01 14:30

@会长: 能否把你获取到的 source 帖一小段出来

支持(0) 反对(0) artwl | 园豆:16526 (专家六级) | 2012-09-01 14:31
0

坐个沙发 飘过 。。c#不懂 。。 sorry 。

Lucky婴桃 | 园豆:126 (初学一级) | 2012-09-01 14:28
1

自己解决了,以前的方法先得到网页内容(第一步),再读取其中的文本并转换编码((第二步))。现在的方法是:在第一步就转编码了:

           System.Net.WebClient client = new WebClient();
            byte[] page = client.DownloadData(url);
            string content = System.Text.Encoding.GetEncoding("GBK").GetString(page);
            _doc = new HtmlDocument();
            _doc.DocumentNode.InnerHtml = content;

我用的是HtmlAgilityPack这东西来分析网页的。用来实例化_doc的代码是 _doc =  new HtmlWeb().Load(url); 它自动实例化属性InnerHtml。现在哥帮它赋值了。。。。

会长 | 园豆:9000 (大侠五级) | 2012-09-01 15:54

注册个号,目的就是为了感谢会长,从网上找了好几天,没有发现类似的解决问题,终于找到了,感谢会长

支持(0) 反对(0) 感谢会长 | 园豆:202 (菜鸟二级) | 2013-01-04 22:19

@感谢会长: 我去,我太感动了

支持(0) 反对(0) 会长 | 园豆:9000 (大侠五级) | 2013-01-09 13:45
0

注册个号,目的就是为了感谢会长,从网上找了好几天,没有发现类似的解决问题,终于找到了,感谢会长

感谢会长 | 园豆:202 (菜鸟二级) | 2013-01-04 22:20
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册