国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > AJAX > 正文

AJAX在GB2312的中文編碼傳輸 AJAX特殊字符編碼正確方法

2024-09-01 08:29:19
字體:
來源:轉載
供稿:網友
很多可能在轉摘過程中失真或未經驗證就被轉摘,真正使用時卻不行,也由此決定自己全方位試驗一下,努力還是沒有白費,雖然最終得出的結果是很簡單的,但其過程對于一個新學AJAX的人來說,真是挺累。
歡迎您在使用過程中對新的心得一起跟帖交流,一個思想+一個思想,至少可以產生兩個思想。

一、在GET發送時:

方法1:在ASP服務器端用Response.charset="GB2312"界定輸出編碼給調用客戶端
此時客戶端不需要做什么轉換即可。如下兩個文件:
1、客戶端JS
代碼如下:
var xmlHttp;
function createXML(){
if(window.ActiveXObject){
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}else if(window.XMLHttpRequest){
xmlHttp=new XMLHttpRequest();
}
}
function startXml(){
createXML();
xmlHttp.onreadystatechange = handleStateChange;
var url="ajaxtext.asp?tm=1&cc"+Math.random();
//var sendContents = 'theinput='+escape(theinput.value);
var regcode="2abc";
xmlHttp.open("get",url,true);
//regcode="regcode="+regcode;
//xmlHttp.setrequestheader("content-length",regcode.length); //可加可不加
//xmlHttp.setRequestHeader("Cache-Control","no-cache");
//xmlHttp.setRequestHeader('Content-type','application/x-www-form-urlencoded'); //可不加
//xmlHttp.send(null);
//xmlHttp.send("regcode="+escape(regcode));
xmlHttp.send(null);
}
function handleStateChange(){
if (xmlHttp.readyState == 4 && xmlHttp.status==200){
//var divid=document.getElementById("results");
retext=xmlHttp.responseText;
alert(retext);
//if(divid.hasChildNodes()){
// divid.removeChild(divid.childNodes[0]);
//}
//var result=document.createTextNode(xmlHttp.responseText);
//divid.appendChild(result);
//document.getElementById("results").innerHTML=xmlHttp.responseText;
}
}

服務器端:
代碼如下:
<%Response.CodePage=936%>
<%Response.charset="GB2312"
dim reg
reg=Request("regcode")
Response.write "王先生·和他的朋友" '可以正確輸出。
%>

方法2:在客戶端用函數轉換(來自網上)。
代碼如下:
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("%"));
}

此時如果服務器端不指明編碼,那么AJAX默認為UTF-8,就不能在客戶端顯示,用這個函數就可以。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 丰顺县| 吉木乃县| 永定县| 鄄城县| 板桥市| 普洱| 平南县| 陆良县| 彰武县| 临沭县| 新和县| 垦利县| 凤山县| 体育| 保康县| 凤庆县| 芦山县| 长沙市| 阜南县| 乐平市| 涿州市| 武强县| 潮州市| 台中市| 沂水县| 道孚县| 临颍县| 荥经县| 措美县| 霸州市| 宁国市| 新化县| 永城市| 沛县| 牙克石市| 哈巴河县| 白朗县| 永平县| 治多县| 枣强县| 历史|