手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >解决远程页面抓取中的乱码问题?
解决远程页面抓取中的乱码问题?
摘要:由于平时使用的网页文件基本上都是gb2312编码方式,如果通过xmlhttp控件读取的话,肯定会出现乱码问题,但是要把所有文件都改成utf-...

由于平时使用的网页文件基本上都是gb2312编码方式,如果通过xmlhttp控件读取的话,肯定会出现乱码问题,但是要把所有文件都改成utf-8编码,操作上比较麻烦。经过反复比较,我找到了相对实用的解决方法。

ff提供了overrideMimeType方法,可以指定返回值的编码,所以解决起来比较简单,只要把这个方法指向gb2312就可以了。对于IE,可以用vbs配合来作编码转换,用gb2utf8来转换接收到的二进制数据,其中利用到execScript方法来调用vbs的函数。

loadPage("index.htm") function loadPage(url){ var xh=window.Event?new XMLHttpRequest():new ActiveXObject("Microsoft.XMLHTTP") xh.open("GET",url,true) if(window.Event) xh.overrideMimeType("text/xml;charset=gb2312") xh.onreadystatechange=function(){ if(xh.readyState!=4) return var v v=window.Event?xh.responseText:window.gb2utf8(xh.responseBody) alert(v) } window.gb2utf8=function(data){ var glbEncode=[],t,i,j,len gb2utf8_data=data execScript("gb2utf8_data = MidB(gb2utf8_data, 1)+' '", "vbscript") t=escape(gb2utf8_data).replace(/%u/g,"").replace(/(.{2})(.{2})/g,"%$2%$1").replace(/%([A-Z].)%(.{2})/g,"@$1$2") t=t.split("@") i=0 len=t.length while(++i

【解决远程页面抓取中的乱码问题?】相关文章:

js获取页面description的方法

通过JavaScript脚本复制网页上的一个表格

在页面中输出当前客户端时间javascript实例代码

判断checkbox选择的个数 多浏览器

jQuery实现将页面上HTML标签换成另外标签的方法

js对象和json对象互相转换的问题

新页面打开实际尺寸的图片

js禁止页面刷新与后退的方法

如何解决远程页面抓取中的乱码问题

剖析Node.js异步编程中的回调与代码设计模式

精品推荐
分类导航