我用c#获取读取网页(head里写的编码方式是gbk)上的一段汉字,读取后发现字符串为乱码。用来如下办法未能解决:
public string ConvertEncdoing(string source) { byte[] bytes = Encoding.GetEncoding("GBK").GetBytes(source); byte[] gbkBytes = Encoding.Convert(Encoding.GetEncoding("GBK"), Encoding.Unicode, bytes); return Encoding.Unicode.GetString(bytes); }
是不是不是这么转的?求教。
用这个http://htmlagilitypack.codeplex.com/ 啥问题都处理了
我好想也是用的这个。和用什么类库抓取网页没关系,是网页中的汉字的编码显示为乱码。因为网页的的编码是gbk。c#里字符串编码是unicode。所在c#中的读取到的汉字显示为乱码了
@会长:
byte[] bytes = Encoding.GetEncoding("GBK").GetBytes(source); 这句好像不对吧,应是你当前的串的实际编码,一般为unicode或utf-8
@2012: 修改为:
public string ConvertEncdoing(string source) { byte[] bytes = Encoding.Default.GetBytes(source); byte[] gbkBytes = Encoding.Convert(Encoding.Default, Encoding.GetEncoding("GB2312"),bytes); return Encoding.GetEncoding("GB2312").GetString(bytes); }
还是不管用