回 帖 发 新 帖 刷新版面

主题:浏览器编码的问题

我用下面的代码把一个网页下载了下来!但是出现一下以"&#"开头的字符,像:
"资料图片:波音737\x3cb\x3e飞机"
请问这些是什么字符,如何还原呢?

下载代码:
public void DownloadHtml(string downUrl, ref string context)
        {
            try
            {
                HttpWebRequest req = (HttpWebRequest)WebRequest.Create(downUrl);
                req.Timeout = 10000;
                using (HttpWebResponse resp = (HttpWebResponse)req.GetResponse())
                using (Stream stream = resp.GetResponseStream())
                using (MemoryStream mem = new MemoryStream())
                {
                    int blockSize = 16384;
                    byte[] blockBuffer = new byte[blockSize];
                    int read = 0;

                    while ((read = stream.Read(blockBuffer, 0, blockSize)) > 0)
                    {
                        mem.Write(blockBuffer, 0, read);
                    }

                    mem.Seek(0, SeekOrigin.Begin);

                    byte[] binaryContent = mem.GetBuffer();

                    Encoding encoding = Encoding.UTF8;
                    context = encoding.GetString(binaryContent);
                }
            }

回复列表 (共2个回复)

沙发

Encoding encoding = Encoding.UTF8;编码问题,换成default试下!

板凳

不好意思,打扰大家了!
不是字符标准的问题,和UTF8还是GB2312都没关系。

其实这类编码是浏览器里的字符编码,可以用system.web.httputil.dcode方法来还原这些字符

我来回复

您尚未登录,请登录后再回复。点此登录或注册