为了账号安全,请及时绑定邮箱和手机立即绑定

二进制流转UTF8字符串编码时被截断

二进制流转UTF8字符串编码时被截断

万千封印 2018-12-05 10:06:04
    string html;            HttpWebRequest request = HttpWebRequest.Create(url) as HttpWebRequest;            request.UserAgent = Comm.GetRandomUserAgent();            var response = request.GetResponse();            Stream stream = response.GetResponseStream();            byte[] data = new byte[1024];            int count = 1024;            StringBuilder sb = new StringBuilder();            MemoryStream ms = new MemoryStream();            do            {                count = stream.Read(data, 0, 1024);                sb.Append(Encoding.UTF8.GetString(data, 0, count));            } while (count >0);            stream.Close();            response.Close();            html = sb.ToString(); 问题是如果一个汉字正好在1024的边界上跨两个循环的话这个汉字会成为乱码。大家有什么好的办法可以解决?
查看完整描述

2 回答

?
元芳怎么了

TA贡献1798条经验 获得超7个赞

StreamReader reader = new StreamReader(stream, Encoding.UTF8);

html =reader.ReadToEnd();


查看完整回答
反对 回复 2018-12-09
?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

好的方法就是用StreamReader,TextReader等流读取器替换你的Encoding.UTF8.GetString.

查看完整回答
反对 回复 2018-12-09
  • 2 回答
  • 0 关注
  • 845 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信