我想做个用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); }
看看这篇文章是否可以帮到你: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);
不起作用
@会长: 能否把你获取到的 source 帖一小段出来
坐个沙发 飘过 。。c#不懂 。。 sorry 。
自己解决了,以前的方法先得到网页内容(第一步),再读取其中的文本并转换编码((第二步))。现在的方法是:在第一步就转编码了:
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。现在哥帮它赋值了。。。。
注册个号,目的就是为了感谢会长,从网上找了好几天,没有发现类似的解决问题,终于找到了,感谢会长
@感谢会长: 我去,我太感动了
注册个号,目的就是为了感谢会长,从网上找了好几天,没有发现类似的解决问题,终于找到了,感谢会长