永发信息网

C#获取网页源代码出现乱码怎么办,怎么自动识别?

答案:4  悬赏:0  手机版
解决时间 2021-01-09 22:13
C#获取网页源代码出现乱码怎么办,怎么自动识别?
最佳答案
出现乱码是的根本原因就是解析时使用的字符编码与网页的字符编码不同。
可通过IE先查看在什么编码下网页可正常显示,如果为简体中文(GBK2312),在解析返回的网页源代码时,就要使用System.Text.Encoding.GetEncoding("gbk2312");或
System.Text.Encoding.GetEncoding(936);进行解码。追问我是想采集各种网页的源代码,有什么办法可以自动识别各种网页的编码吗?追答自动识别网页编码,这个没有做过,不过对于中文网站不是gbk2312就是unicode(utf-8)。你采集各种网页源代码,应该是一个网站的吧?如果是一个网站就先看看网站的编码,如果不是一个网站就不太好办了。对于文件的编码是可以采用bom判断的,不过这个不在这次问题之内就不说了。
全部回答
编码不正确
有个网页小偷工具可以把你需要的东西都下载下来,dreamweaver和Vs都可以对源码进行解释啊!不过不清楚你要的是什么……
一般情况下,原因就是你使用了不同的解码方式造成的。
不过好的方面是,这个解码方式一般是有说明的,可以直接从网页中截取。一般的网站作者防止浏览器从不同的编码方式上换到自己页面上来而出来乱码,比如你的网页是utf-8的页面,如果一个浏览者从gb2312的页面上通过连接地址转过来,你的页面就是出现乱码。为了让浏览器自动识别,作者往往加入一个元数据说明,该说明为:,幸运的是,你可以用任何一种解码,解出的英文都不会乱码,然后找到该字符串,看其中charset后边的编码方式就可以确定用哪一种解码了!
但是对于某些不知道的作者,或者有特殊作用的做者,你根本在源码中找不到该编码方式,这时一般情况下的,我们请求时上传一种方式,一般网站根本上传的方式自动解析后相对应的编码方式。
当然,这只是对于httpwebrequest取页面源码时的操作,如果你要用webclient已经封装好的对的话,也是可以用同的样的方式进行一次判断,如果是用webbroswer的话更简单的,因为webbrowser可以像浏览器那样判断好的,你可以获知他的编码方式,同时利用mshtml空间的内容可以直接取到webbroswer的内容的。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
西安法律援助中心
如何能让人有想死的念头。怎么样才能劝别人去
牦牛什么都吃
江川市在哪个省?地理位置?
米夫罗台湾卤肉饭地址在什么地方,想过去办事
点钞怎么能让手指动得更快
满文老档的简介
姓陈,睿字开头想给女宝宝取个带金字旁的名字
英语中定语从句中,什么情况下只用that
绿山墙的安妮第十六章新生活的开始的主要内容
到底月薪多少才够养一辆百万级别的豪车
开车从南京新街口到仙灵南大怎么走
一米六四身高的男生穿s码的裤子可以吗?
Low-carbon emissions and energy conservati
八十八佛大忏悔文拜忏一句一拜
推荐资讯
支招:装修如何处理墙面问题
我要设置一个虚拟电话号码,能让其他人打通这
带着游戏系统穿越到三国,可以将东西变成一个
谁有阳光宽带网的电话阿
LOVE STORY RAIN 这歌是RAIN哪本电影里的啊?
I5-7200U/4GB/256GB/2G独显这个
我朋友给我写了首诗我不解其意讲大家帮忙,长
粤语里面h和f发音有区别吗
用胶带把小弟弟缠得死死的,可以抑制勃起吗
北京法中一合咨询有限公司怎么样?
谁有led显示屏控制软件型号BL-5UA1
长期在滴灌带车间上班对身体有害吗?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?