在使用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('%'));
}