在GBK编码的页面中使用AJAX
- hliang
- 0
- Posted on
在使用AJAX时,如果遇到使用GBK或GB2312编码的页面,怎么办呢?首先需要把GBK编码的汉字转换成UTF8编码,才不会出现乱码的情况。
使用下面的函数进行编码:
function gb2utf8(data) {
var glbEncode = [];
gb2utf8_data = data;
execScript("gb2utf8_data = MidB(gb2utf8_data, 1)", "VBScript");
var t=escape(gb2utf8_data).replace(/%u/g,"").replace(/(.{2})(.{2})/g,"%$2%$1").replace(/%([A-Z].)%(.{2})/g,"@$1$2");
t=t.split("@");
var i=0,j=t.length,k;
while(++i < j) {
k=t[i].substring(0,4);
if(!glbEncode[k]) {
gb2utf8_char = eval('0x' + k);
execScript('gb2utf8_char = Chr(gb2utf8_char)', 'VBScript');
glbEncode[k]=escape(gb2utf8_char).substring(1,6);
}
t[i]=glbEncode[k]+t[i].substring(4);
}
gb2utf8_data = gb2utf8_char = null;
return unescape(t.join('%'));
}