亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > AJAX > 正文

ajax中文亂碼解決方法

2024-09-01 08:26:03
字體:
來源:轉載
供稿:網友
用過ajax的朋友肯定知道javascript是使用utf-8國際編碼,即每個漢字用4個字節來存儲,但是這就造成了用ajax來send數據的時候出現亂碼。

有一種解決辦法就是使用encodeuricomponent加上修改 content-type 為 application/x-www-form-urlencoded" 來把數據統一編碼成 url 格式,當然,也可以指定編碼,如:“application/x-www-form-urlencoded; charset=utf-8 ”,例子:http_request = new activexobject("msxml2.xmlhttp"); http_request.setrequestheader("content-type","application/x-www-form-urlencoded; charset=utf-8");
另一種方法就是通過vbscript 的寫的函數把數據轉成gb2312格式的,我個人覺得這種方法比較好。有興趣的朋友可以到網上去查一下。

也可以在js發送數據之前用escape函數把data轉換為16進制的字符串,用js讀取數據的時候再用unescape轉換回來就ok了。

今天突發奇想,ajax調用的時候會不會發送cookie 呢?馬上寫了一個程序測試一下,果然能,這樣就可以在調用ajax之前,先把數據通過javascript寫到cookie里,然后再send就可以將cookie里的數據發送出去了,太爽了?。?

演示地址:http://cn5.cn/ajax/ajax12.htm

客戶端代碼 ajax.htm
<title>ajax使用cookie傳值例子</title>
<script>
var odiv
var xh
function getxml()
{
setcookie($('name').value,$('val').value);
odiv = document.all.m
odiv.innerhtml = "正在裝載,請稍侯......."
odiv.style.display= ""
xh = new activexobject("microsoft.xmlhttp")
xh.onreadystatechange = getready
xh.open("post","a.php",false)
xh.send();
}

function getready()
{
if(xh.readystate==4)
{
if(xh.status==200)
{
odiv.innerhtml = "完成"
}
else
{
odiv.innerhtml = "抱歉,裝載數據失敗。原因:" + xh.statustext
}
}
} //author : longbill www.longbill.cn

function setcookie(name,value)
{
var cookiestr=name+"="+value+";";
var expires = "";
var cookieexp=60*60*1000;
var d = new date();
d.settime( d.gettime() + cookieexp);
expires = "expires=" + d.togmtstring()+";";
document.cookie = cookiestr+ expires;
}
function $(a)
{
return document.getelementbyid(a);
}
</script>

<body>
ajax使用cookie傳值例子:<br/>
<form name=myform>
name:<input id=name value="變量名甚至可以是中文" size=20><br/>
value:<input type=text size=20 id=val value=這里><br/>
<input onclick="getxml()" type="button" value="送出數據">
<input onclick="if(xh && xh.responsetext) {alert(xh.responsetext);}" type="button" value="顯示返回結果"><br/>
<div id=m bgcolor=blue>在此顯示狀態</div>
<input type=button onclick="alert(document.cookie)" value=顯示本地cookie>
</form>


服務器端代碼 a.php
<?
header("content-type: text/html;charset=gb2312");
echo "以下是您送出的所有cookie變量及其值/n";
print_r($_cookie);
?>


第一,javascript沿用java的字符處理方式,內部是使用unicode來處理所有字符的,
第二,utf-8是每個漢字(unicode字符)用3個字節來存儲。
第三,用utf-8來send數據是不會出現亂碼的,是后臺程序沒有正確解碼才會出現亂碼。
第四,ajax發送數據的時候如果修改 content-type 為 application/x-www-form-urlencoded",肯定是用post方式,而“太大的數據往往會出錯”是用get方式發送數據造成的。
第五,用vbscript寫的函數是用來把數據轉成gbk編碼(操作系統默認的編碼方式。如果在繁體系統上就是big5之類的編碼)的,而不是gb2312,兩者的編碼字符數量相差3倍左右。
第六,用cookie來發送數據,一是很容易溢出,二是要不停的擦屁股,否則cookie里面的數據在每個http請求(包括圖片和腳本請求)中都會被發送。三是并發幾個http請求的時候,沒有辦法指定那個cookie是要發送給那個http請求的。

用ajax來get回一個頁面時,responsetext里面的中文多半會出現亂碼,這是因為xmlhttp在處理返回的responsetext的時候,是把resposebody按utf-8編碼進解碼考形成的,如果服務器送出的確實是utf-8的數據流的時候漢字會正確顯示,而送出了gbk編碼流的時候就亂了。解決的辦法就是在送出的流里面加一個header,指明送出的是什么編碼流,這樣xmlhttp就不會亂搞了。

php:header('content-type:text/html;charset=gb2312');
asp:response.charset("gb2312")
jsp:response.setheader("charset","gb2312");
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
丝袜亚洲另类欧美重口| 欧美一级淫片播放口| 亚洲最大福利网| 91高清免费视频| 欧美一区二区三区精品电影| 欧美在线视频网站| 欧美性猛交xxxx黑人猛交| 国产精品一区二区三区久久| 国产国语刺激对白av不卡| 国产亚洲精品美女| 国产91精品青草社区| 91成品人片a无限观看| 亚洲国产欧美精品| 日韩欧美在线国产| 国产精品入口免费视| 91av在线免费观看| 亚洲国产精品久久久久| www.亚洲人.com| 欧美美最猛性xxxxxx| 欧美另类第一页| 成人久久久久久久| 国产精品久久一区| 色偷偷偷亚洲综合网另类| 亚洲激情视频网| 中文在线资源观看视频网站免费不卡| 国产成人激情小视频| 国产精品久久久久久久久久久久| 国产不卡精品视男人的天堂| 欧洲成人免费aa| 性视频1819p久久| 91夜夜揉人人捏人人添红杏| 国产精品久久视频| 国产成+人+综合+亚洲欧美丁香花| 国产日韩欧美在线视频观看| 亚洲欧洲日产国产网站| 韩国精品久久久999| 国产香蕉精品视频一区二区三区| 欧美日韩ab片| 自拍偷拍亚洲精品| 亚洲人成网站免费播放| 亚洲欧美色婷婷| 欧美午夜精品在线| 欧美大码xxxx| 欧美性猛交xxxx| 亚洲天堂av女优| 国内精品久久影院| 亚洲欧美中文字幕在线一区| 在线看日韩av| 91精品久久久久久久久久另类| 日本精品久久中文字幕佐佐木| 久久精品99国产精品酒店日本| 亚洲欧美制服综合另类| 欧美激情视频三区| 国产精品日韩欧美综合| 成人av在线天堂| 亚洲国产精品网站| 国产热re99久久6国产精品| 国产精品色视频| 日本成熟性欧美| 最新中文字幕亚洲| 亚洲欧美日本另类| 韩国三级日本三级少妇99| 久久精彩免费视频| 精品国产一区二区三区在线观看| 国产精品电影观看| 国产精品久久久久久久久久三级| 欧美日韩国产精品一区| 亚洲影影院av| 国产亚洲人成网站在线观看| 国产va免费精品高清在线观看| 国产成人在线播放| 亚洲一区二区三区久久| 91久久精品日日躁夜夜躁国产| 国产z一区二区三区| www.欧美精品| 中文综合在线观看| 久久久综合av| 中文字幕在线看视频国产欧美在线看完整| 日韩一级裸体免费视频| 国产在线拍揄自揄视频不卡99| 欧美—级高清免费播放| 国产精品91在线| 欧美一性一乱一交一视频| 久久在线免费视频| 欧美成人四级hd版| 深夜福利91大全| 国产精品久久久久久av福利软件| 91免费视频网站| 精品国产乱码久久久久久婷婷| 亚洲天堂网站在线观看视频| 国产精品久久久久久久久粉嫩av| 欧美午夜视频一区二区| 欧美成aaa人片在线观看蜜臀| 色在人av网站天堂精品| 日韩精品在线视频观看| 亚洲三级av在线| 国产日韩欧美夫妻视频在线观看| 日韩风俗一区 二区| 欧美在线精品免播放器视频| 国产日韩欧美日韩大片| 成人做爽爽免费视频| 成人欧美一区二区三区在线| 亚洲片av在线| 成人午夜激情网| 日韩av成人在线观看| 日韩最新免费不卡| 91视频免费网站| 国产午夜精品美女视频明星a级| 欧美午夜激情视频| 欧美大片欧美激情性色a∨久久| 成人国产在线激情| 精品美女永久免费视频| 尤物yw午夜国产精品视频明星| 91精品久久久久久久久| 91午夜理伦私人影院| 精品成人69xx.xyz| 亚洲欧洲自拍偷拍| 亚洲精品视频网上网址在线观看| 亚洲精品免费网站| 国产精品揄拍一区二区| 国产成人精品亚洲精品| 美女999久久久精品视频| 色视频www在线播放国产成人| 亚洲成人黄色网| 亚洲精品理论电影| 欧美激情网友自拍| 欧美精品www| 狠狠久久五月精品中文字幕| 中文字幕精品一区久久久久| 日本伊人精品一区二区三区介绍| 久久影视电视剧凤归四时歌| 美女999久久久精品视频| 国产精品扒开腿做爽爽爽男男| 91丨九色丨国产在线| 一本大道亚洲视频| 日本国产欧美一区二区三区| 欧美猛少妇色xxxxx| 91精品在线观| 国产ts人妖一区二区三区| 日韩国产一区三区| 一区二区三欧美| 韩国欧美亚洲国产| 国产精品对白刺激| 久久国产精品影片| www.久久撸.com| 国产欧美日韩精品专区| 亚洲午夜小视频| 亚洲精品国产综合区久久久久久久| 91精品久久久久久久久青青| 国产欧美亚洲精品| 日本中文字幕久久看| 亚洲情综合五月天| 97视频在线观看免费| 最近2019年好看中文字幕视频| 91午夜在线播放| 亚洲精品乱码久久久久久金桔影视| 色综合久久精品亚洲国产| 欧美激情xxxx| 自拍偷拍亚洲精品| 久久夜色精品国产亚洲aⅴ| 亚洲在线视频福利| 亚洲一区亚洲二区| 日韩电影中文字幕在线观看| 欧美精品videofree1080p|