用httpwebrequest获取了一网页的内容,中文部分全部变成了繁体似的乱码,但网页用ie访问正常,怎样可以把内容编码,转成正常的。网页上右键看到的编码是utf-8。我自己转码是这样写的,//_scr是用httpwebrequest从网页上获取的内容Encoding encoding1 = Encoding.GetEncoding("gb2312");
Encoding encoding2 = Encoding.GetEncoding("utf-8");
byte[] buffer1 = encoding1.GetBytes(_scr);
_scr=encoding2.GetString(buffer1);这样转换后的字符串正常,但是部分中文丢掉了,因为在原内容中,部分中文被乱码显示为了?号等,这部分中文转换后就丢了。求xdjms提供可以全文正确转换的方法,谢谢!

解决方案 »

  1.   

    谢谢楼上!
    各种组合都试了,只有这样的组合
    Encoding encoding1 = Encoding.GetEncoding("gb2312");
    Encoding encoding2 = Encoding.GetEncoding("utf-8");
    byte[] buffer1 = encoding1.GetBytes(_scr);
    _scr=encoding2.GetString(buffer1);
    能出正常的内容,但内容部分丢失。
    求其他转码方法!!!
      

  2.   

    不要做转换。直接输出:string _scr;Encoding encoding2 = Encoding.GetEncoding("utf-8");如果不对,就是你的获取的httpwebrequest流已经错了。
    HttpWebResponse response = (HttpWebResponse)request.GetResponse();
    StreamReader sr =  new System.IO.StreamReader(response.GetResponseStream(), encoding2);
    _scr = sr.ReadToEnd();//关闭流
      
    --------------------------------------------------------------
    程序,犹如人生。