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

首頁 > 編程 > JavaScript > 正文

真正的JQuery.ajax傳遞中文參數的解決方法

2019-11-20 23:48:15
字體:
來源:轉載
供稿:網友
本人最近也遇到了需要傳遞中文參數的問題。在網上搜索一下,復制粘貼發的到處都是的“終極”“解決方案”無非就是escape(str)來轉碼,然后在服務端還要寫個方法再編輯一次,或用System.Text.Encoding下的方法來換來換去。

我很久以前一直在使用Prototype框架。在.net-GB2312或jsp-utf8下都使用過,從來沒遇到有字符編碼的問題。于是將Prototype和JQuery代碼都下載下來打開研究原因。具體結果如下

JQuery與Prototype創建Ajax代碼比較
不同之處在于JQuery默認的contentType:application/x-www-form-urlencoded
而Prototype則是contentType:application/x-www-form-urlencoded; charset=UTF-8
這才是JQuery正在亂碼的原因,在未指定字符集的時候,是使用ISO-8859-1
ISO8859-1,通常叫做Latin-1。Latin-1包括了書寫所有西方歐洲語言不可缺少的附加字符。
JQuery的Ajax根本沒有考慮到國際化的問題,使用了歐洲的字符集,所以才引起了傳遞中文出現亂碼的問題。
而我們的UTF-8則可以解決這一問題。
最終指需要修改JQuery的代碼,顯式聲明contentType使用utf-8字符集,即可解決GB2312中文傳遞的問題。
修改如圖:

修改JQuery代碼
只需要簡單的將JQuery的代碼加以修改,加上charset=UTF-8就可以了,這樣不需要改變改什么web.config或什么在頁面中改編碼什么的了,也不需要用escapc(str)再在服務端解碼。英文怎么傳遞,中文也怎么傳遞。
給段簡單的代碼測試一下:
test.html:

復制代碼 代碼如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title></title>
<script type="text/javascript" src="scripts/jquery-1.3.2.min.js"></script>
<script type="text/javascript">
function DoAjax(){
$.post("AjaxTest.aspx",{txt:$("#tbox1").val()},
function(data){
$("#AjaxResponse").text(data);
}
);
}
</script>
</head>
<body>
<p><a href="javascript:DoAjax();">AjaxTest</a><input name="tbox1" id="tbox1" type="text" /></p>
<div id="AjaxResponse"></div>
</body>
</html>

AjaxTest.aspx:
復制代碼 代碼如下:

<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="gb2312" %>
<script runat="server">
string parms;
void Page_Load(object sender , EventArgs e)
{
parms=Request["txt"];
if (String.IsNullOrEmpty(parms)){
Response.Write("Is Null");
}else{
Response.Write(parms);
}
}
</script>

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 翁牛特旗| 五华县| 镇巴县| 石嘴山市| 都安| 池州市| 合山市| 昂仁县| 东宁县| 扶沟县| 耿马| 泽州县| 大邑县| 陆川县| 从化市| 云阳县| 平邑县| 淮安市| 阜南县| 岢岚县| 盈江县| 铜陵市| 西乡县| 屏东市| 安丘市| 山阳县| 洛浦县| 革吉县| 澄江县| 滨海县| 禹州市| 普安县| 关岭| 兰坪| 澄江县| 平泉县| 海盐县| 通榆县| 灯塔市| 信丰县| 安陆市|