麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發(fā) > AJAX > 正文

JQuery的Ajax中Post方法傳遞中文出現(xiàn)亂碼的解決方法

2024-09-01 08:32:54
字體:
供稿:網(wǎng)友
這篇文章主要介紹了JQuery的Ajax中Post方法傳遞中文出現(xiàn)亂碼的解決方法,較為深入的分析了Ajax的post方法出現(xiàn)亂碼的原因,以及具體的解決方法,需要的朋友可以參考下
 
 

本文實例講述了JQuery中Post傳遞中文出現(xiàn)的解決方法,即亂碼ajax與jquery.ajax中文參數(shù)post傳遞亂碼處理方法。分享給大家供大家參考。具體分析如下:

問題一:

今天在做項目時,需要用到Ajax,之前我在用GET方式傳遞中文參數(shù)時,只需要在后臺程序中設置頁面編碼為GB2312即中文能正常顯示,可是這次由于表單項目較多,不適合用GET方式傳遞,只能用POST方式,但發(fā)現(xiàn)后臺程序中設置編碼為GB2312時中文還是顯示的亂碼。經(jīng)過一番研究問題才最終得到解決。

解決方法:

解決此問題的方法非常簡單,只需要在JS處理參數(shù)時用escape()函數(shù)處理一下即可,而且不需要再用unescape()解碼,這個方法適合POST和GET方式,具體的Ajax代碼這里我不例出,這里給出用escape()函數(shù)處理參數(shù)時的代碼:

 

復制代碼代碼如下:
var htmer ="getcode="+escape(getcode)+"&Content="+escape(Content);
 

 

通常我們在處理Ajax的時候會在這里直接獲取參數(shù)的值,為了使中文參數(shù)不是亂碼,我們只需要用escape()函數(shù)對參數(shù)處理下即可。

問題二:

當網(wǎng)站頁面不是utf-8編碼時,ajax提交的中文便會變成亂碼。

解決方法如下:

找到jquery.js里的contentType:application/x-www-form-urlencoded,將它改成contentType:application/x-www-form-urlencoded; charset=UTF-8就可以了。

原因:未指定charset時,jquery使用ISO-8859-1,ISO8859-1,通常叫做Latin-1。Latin-1包括了書寫所有西方歐洲語言不可缺少的附加字符。jquery的ajax根本沒有考慮到國際化的問題,而使用了歐洲的字符集,所以傳遞中文時才會出現(xiàn)亂碼

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

不同之處在于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根本沒有考慮到國際化的問題,使用了歐洲的字符集,所以才引起了傳遞中文出現(xiàn)亂碼的問題。

而我們的UTF-8則可以解決這一問題。

最終指需要修改JQuery的代碼,顯式聲明contentType使用utf-8字符集,即可解決GB2312中文傳遞的問題。

只需要簡單的將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/網(wǎng)頁特效" 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>

 

此外,由于Ajax的默認漢字編碼是utf-8,因此比較保險的方法是保證所涉及的頁面統(tǒng)一編碼格式為utf-8。

希望本文所述對大家基于的jQuery的Ajax程序設計有所幫助。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 少妇一级淫片免费放正片 | 性爱视频在线免费 | 国产精品视频成人 | 亚洲成人免费电影 | 亚洲精品 在线播放 | 久久综合给合久久狠狠狠97色69 | 91短视频版高清在线观看免费 | 亚洲成人播放 | 欧美性猛交一区二区三区精品 | 国产精品一区视频 | 国产超碰人人爽人人做人人爱 | 国产毛片网 | 蜜桃传媒视频麻豆第一区免费观看 | av电影网在线观看 | 日韩剧情片| 亚洲成在人 | 91精品成人福利在线播放 | 色播视频网站 | 国产精品成人一区二区三区电影毛片 | 一区二区免费看 | 99sesese| www日韩在线观看 | 成人精品免费看 | 手机免费看一级片 | 在线a免费观看 | 污片在线观看视频 | 密室逃脱第一季免费观看完整在线 | 香蕉久久久精品 | 久久精品免费网站 | 黄色av网站在线观看 | 一级免费特黄视频 | 欧美一级三级在线观看 | 欧美18—19sex性hd按摩 | 欧美日韩夜夜 | 成人免费网站在线观看 | 少妇一级淫片免费放正片 | 久久精品亚洲精品国产欧美kt∨ | 日本精品中文字幕 | 亚洲午夜在线视频 | 欧美中文字幕一区二区 | 一级黄色免费观看 |