中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

Jquery亂碼(ma)終(zhong)極解(jie)決方案

  今(jin)(jin)天(tian)閑的(de)無聊,把以(yi)前遺留的(de)問題解(jie)決一下(xia),比如(ru)讓人(ren)頭痛(tong)的(de)Jquery亂(luan)碼(ma)問題。其實這(zhe)方面文(wen)章已(yi)經很多(duo)了,但全面解(jie)決各(ge)種問題的(de)很少,今(jin)(jin)天(tian)總結一下(xia),方便(bian)(bian)自己也方便(bian)(bian)大家(jia)。

原因(yin)很簡單: 其實他的(de)中文亂(luan)碼就是因(yin)為(wei)contentType沒有(you)(you)指定(ding)編碼,對于不(bu)同Jquery的(de)版本(ben)中這(zhe)個(ge)地方有(you)(you)不(bu)同的(de)設置,就拿(na)我遇到的(de),jquery-1.6.1和jquery-1.8.3就有(you)(you)不(bu)同的(de)定(ding)義(yi)。

解決(jue)辦法(fa):在(zai)(zai)jquery-1.6.1文件(jian)中,搜索’contentType’ 然后在(zai)(zai)application/x-www-form-urlencoded后面加上; charset=UTF-8 最終變成contentType:"application/x-www-form-urlencoded; charset=UTF-8"即可(ke)。

這樣通過post方法(fa)提(ti)交后(hou)會出現亂碼的問題就(jiu)可以(yi)完美解決。

如果還有(you)(you)亂(luan)碼(ma)現象,只能說你接收(shou)頁(ye)面(mian)的編碼(ma)也(ye)有(you)(you)問(wen)題, 這是(shi)由于異(yi)步對(dui)象XMLHttpRequest在處(chu)理返回的responseText的時候,是(shi)按UTF-8編碼(ma)進行解碼(ma)的。所以post方式的話,必(bi)須把這個頁(ye)面(mian)另存一下,將(jiang)頁(ye)面(mian)文(wen)件(jian)的編碼(ma)改為 UTF-8 (請務必(bi)記住)。

 

沒修改(gai)前,整個FROM表單(dan)數據全(quan)部為亂(luan)碼(ma)狀態,對于這種情況,大家按(an)以上方(fang)法可以輕松(song)解決(jue)。

 

 

以下(xia)是一些(xie)特別情況的問題總結,來源于網絡:

JQuery Ajax提交(jiao)出現(xian)中文亂碼的解(jie)決辦法2


前使用Jquery的時候一直沒有發現,用Ajax提交的時候會出現亂碼,我猜測可能是因為編碼的原因
可能存在以下幾點原因:
1.HTML的編碼不統一:如頁面用的GB2312,好像JQuery對它支持不太好。以前我一直都是用UTF-8的,一直都沒有發現;
2.文件的(de)(de)編碼,這個不(bu)好在表面上看到,簡(jian)體(ti)中文版的(de)(de)操作系統存的(de)(de)文本格式的(de)(de)文件默認是 GB2312,建議(yi)把文件換成UTF-8格式的(de)(de)

最簡單的解決辦法,把提交的中文文本用 JS的 escape 處理一下,就不會現出現亂碼了。
如:

//保存數據
$.ajax({
url:"/guide/savecomments.aspx" ,
type:"POST" ,
dataType:"json" ,
data:"Action=SaveComment&CommNickName=" +escape(CommNickName.val()) + "&CommContent=" +escape(CommContent.val()) + "&GuideID=" + GuideID.val() + "&ScoreLogType=<%=ScoreLogType %>",
success:function(results){
alert(results.message);

 

-------------------------------------------------------------------------------
解(jie)決(jue)的辦(ban)法(fa)上(shang)用js的編(bian)碼函數encodeURIComponent(string)處理一下,把中文"王曉(xiao)明(ming)"編(bian)碼成(cheng)"%E7%8E%8B%E6%99%93%E6%98%8E",就OK了。

順(shun)便(bian)說一下(xia),我的tomcat下(xia)的URIEncoding=UTF-8


-------------------------------------------------------------------------------
今天(tian)在使(shi)用jquery檢測用戶名(ming)的(de)時(shi)候,對英文和數字的(de)用戶名(ming)檢測正確,但是對中文的(de)時(shi)候,檢測出(chu)錯,經(jing)過在網上查詢一(yi)段時(shi)間,終于找到了原因(yin),是亂碼問題(ti),解決方法:

1、只要在ajax中有數據提交時,如果頁面編碼不是utf-8的,都應該對提交的數據進行編碼,js的編碼函數為escape()
2、在服務器端頁接收數據后進行解碼,然后對數據進行相關的處理后再編碼
3、返回到客戶端后再解碼
4、如果沒有提交數據,而是直接從服務器端獲取數據,那直接在服務器頁面設置Response.Charset="gb2312"即可,不用再編碼解碼
vbscript中(zhong)分別對(dui)應js中(zhong)的(de)escape()和(he)unescape()函數 程序代碼(ma)

 


-------------------------------------------------------------------------------
通過(guo)以下處理方(fang)式得到(dao)解決:

傳遞參數的時候 對參數進行編碼priceName="encodeURI(priceName)",也可以用encodeURIComponent();

服(fu)務(wu)器端無需(xu)做其他處理: String priceName = request.getParameter("priceName");

posted @ 2012-12-29 17:37  Popeye-lxw  閱讀(867)  評論(1)    收藏  舉報