jquery亂碼與contentType屬性設(shè)置問題解決方案
更新時(shí)間:2013年01月07日 11:31:55 作者:
讓人頭痛的Jquery亂碼問題。其實(shí)這方面文章已經(jīng)很多了,但全面解決各種問題的很少,今天總結(jié)一下,方便自己也方便大家,感興趣的朋友可以了解下哦
今天閑的無聊,把以前遺留的問題解決一下,比如讓人頭痛的Jquery亂碼問題。其實(shí)這方面文章已經(jīng)很多了,但全面解決各種問題的很少,今天總結(jié)一下,方便自己也方便大家。
原因很簡單: 其實(shí)他的中文亂碼就是因?yàn)閏ontentType沒有指定編碼,對(duì)于不同Jquery的版本中這個(gè)地方有不同的設(shè)置,就拿我遇到的,jquery-1.6.1和jquery-1.8.3就有不同的定義。
解決辦法:在jquery-1.6.1文件中,搜索'contentType' 然后在application/x-www-form-urlencoded后面加上; charset=UTF-8 最終變成contentType:"application/x-www-form-urlencoded; charset=UTF-8"即可。
這樣通過post方法提交后會(huì)出現(xiàn)亂碼的問題就可以完美解決。
如果還有亂碼現(xiàn)象,只能說你接收頁面的編碼也有問題, 這是由于異步對(duì)象XMLHttpRequest在處理返回的responseText的時(shí)候,是按UTF-8編碼進(jìn)行解碼的。所以post方式的話,必須把這個(gè)頁面另存一下,將頁面文件的編碼改為 UTF-8 (請務(wù)必記住)。
沒修改前,整個(gè)FROM表單數(shù)據(jù)全部為亂碼狀態(tài),對(duì)于這種情況,大家按以上方法可以輕松解決。
以下是一些特別情況的問題總結(jié),來源于網(wǎng)絡(luò):
JQuery Ajax提交出現(xiàn)中文亂碼的解決辦法2
前使用Jquery的時(shí)候一直沒有發(fā)現(xiàn),用Ajax提交的時(shí)候會(huì)出現(xiàn)亂碼,我猜測可能是因?yàn)榫幋a的原因
可能存在以下幾點(diǎn)原因:
1.HTML的編碼不統(tǒng)一:如頁面用的GB2312,好像JQuery對(duì)它支持不太好。以前我一直都是用UTF-8的,一直都沒有發(fā)現(xiàn);
2.文件的編碼,這個(gè)不好在表面上看到,簡體中文版的操作系統(tǒng)存的文本格式的文件默認(rèn)是 GB2312,建議把文件換成UTF-8格式的
最簡單的解決辦法,把提交的中文文本用 JS的 escape 處理一下,就不會(huì)現(xiàn)出現(xiàn)亂碼了。
如:
//保存數(shù)據(jù)
$.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);
-------------------------------------------------------------------------------
解決的辦法上用js的編碼函數(shù)encodeURIComponent(string)處理一下,把中文"王曉明"編碼成"%E7%8E%8B%E6%99%93%E6%98%8E",就OK了。
順便說一下,我的tomcat下的URIEncoding=UTF-8
-------------------------------------------------------------------------------
今天在使用jquery檢測用戶名的時(shí)候,對(duì)英文和數(shù)字的用戶名檢測正確,但是對(duì)中文的時(shí)候,檢測出錯(cuò),經(jīng)過在網(wǎng)上查詢一段時(shí)間,終于找到了原因,是亂碼問題,解決方法:
1、只要在ajax中有數(shù)據(jù)提交時(shí),如果頁面編碼不是utf-8的,都應(yīng)該對(duì)提交的數(shù)據(jù)進(jìn)行編碼,js的編碼函數(shù)為escape()
2、在服務(wù)器端頁接收數(shù)據(jù)后進(jìn)行解碼,然后對(duì)數(shù)據(jù)進(jìn)行相關(guān)的處理后再編碼
3、返回到客戶端后再解碼
4、如果沒有提交數(shù)據(jù),而是直接從服務(wù)器端獲取數(shù)據(jù),那直接在服務(wù)器頁面設(shè)置Response.Charset="gb2312"即可,不用再編碼解碼
vbscript中分別對(duì)應(yīng)js中的escape()和unescape()函數(shù) 程序代碼
-------------------------------------------------------------------------------
通過以下處理方式得到解決:
傳遞參數(shù)的時(shí)候 對(duì)參數(shù)進(jìn)行編碼priceName="encodeURI(priceName)",也可以用encodeURIComponent();
服務(wù)器端無需做其他處理: String priceName = request.getParameter("priceName");
原因很簡單: 其實(shí)他的中文亂碼就是因?yàn)閏ontentType沒有指定編碼,對(duì)于不同Jquery的版本中這個(gè)地方有不同的設(shè)置,就拿我遇到的,jquery-1.6.1和jquery-1.8.3就有不同的定義。
解決辦法:在jquery-1.6.1文件中,搜索'contentType' 然后在application/x-www-form-urlencoded后面加上; charset=UTF-8 最終變成contentType:"application/x-www-form-urlencoded; charset=UTF-8"即可。
這樣通過post方法提交后會(huì)出現(xiàn)亂碼的問題就可以完美解決。
如果還有亂碼現(xiàn)象,只能說你接收頁面的編碼也有問題, 這是由于異步對(duì)象XMLHttpRequest在處理返回的responseText的時(shí)候,是按UTF-8編碼進(jìn)行解碼的。所以post方式的話,必須把這個(gè)頁面另存一下,將頁面文件的編碼改為 UTF-8 (請務(wù)必記住)。

沒修改前,整個(gè)FROM表單數(shù)據(jù)全部為亂碼狀態(tài),對(duì)于這種情況,大家按以上方法可以輕松解決。
以下是一些特別情況的問題總結(jié),來源于網(wǎng)絡(luò):
JQuery Ajax提交出現(xiàn)中文亂碼的解決辦法2
前使用Jquery的時(shí)候一直沒有發(fā)現(xiàn),用Ajax提交的時(shí)候會(huì)出現(xiàn)亂碼,我猜測可能是因?yàn)榫幋a的原因
可能存在以下幾點(diǎn)原因:
1.HTML的編碼不統(tǒng)一:如頁面用的GB2312,好像JQuery對(duì)它支持不太好。以前我一直都是用UTF-8的,一直都沒有發(fā)現(xiàn);
2.文件的編碼,這個(gè)不好在表面上看到,簡體中文版的操作系統(tǒng)存的文本格式的文件默認(rèn)是 GB2312,建議把文件換成UTF-8格式的
最簡單的解決辦法,把提交的中文文本用 JS的 escape 處理一下,就不會(huì)現(xiàn)出現(xiàn)亂碼了。
如:
復(fù)制代碼 代碼如下:
//保存數(shù)據(jù)
$.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);
-------------------------------------------------------------------------------
解決的辦法上用js的編碼函數(shù)encodeURIComponent(string)處理一下,把中文"王曉明"編碼成"%E7%8E%8B%E6%99%93%E6%98%8E",就OK了。
順便說一下,我的tomcat下的URIEncoding=UTF-8
-------------------------------------------------------------------------------
今天在使用jquery檢測用戶名的時(shí)候,對(duì)英文和數(shù)字的用戶名檢測正確,但是對(duì)中文的時(shí)候,檢測出錯(cuò),經(jīng)過在網(wǎng)上查詢一段時(shí)間,終于找到了原因,是亂碼問題,解決方法:
1、只要在ajax中有數(shù)據(jù)提交時(shí),如果頁面編碼不是utf-8的,都應(yīng)該對(duì)提交的數(shù)據(jù)進(jìn)行編碼,js的編碼函數(shù)為escape()
2、在服務(wù)器端頁接收數(shù)據(jù)后進(jìn)行解碼,然后對(duì)數(shù)據(jù)進(jìn)行相關(guān)的處理后再編碼
3、返回到客戶端后再解碼
4、如果沒有提交數(shù)據(jù),而是直接從服務(wù)器端獲取數(shù)據(jù),那直接在服務(wù)器頁面設(shè)置Response.Charset="gb2312"即可,不用再編碼解碼
vbscript中分別對(duì)應(yīng)js中的escape()和unescape()函數(shù) 程序代碼
-------------------------------------------------------------------------------
通過以下處理方式得到解決:
傳遞參數(shù)的時(shí)候 對(duì)參數(shù)進(jìn)行編碼priceName="encodeURI(priceName)",也可以用encodeURIComponent();
服務(wù)器端無需做其他處理: String priceName = request.getParameter("priceName");
您可能感興趣的文章:
- asp.net下Response.ContentType類型匯總
- 用asp實(shí)現(xiàn)網(wǎng)頁調(diào)用doc附Response.ContentType 詳細(xì)列表
- html 的 ContentType 小結(jié)
- 讓手機(jī)訪問WAP網(wǎng)站服務(wù)器 IIS WAP服務(wù)器的MIME類型設(shè)置
- asp.net 下載文件時(shí)根據(jù)MIME類型自動(dòng)判斷保存文件的擴(kuò)展名
- WIN2003中使用IIS配置手機(jī)下載類WAP網(wǎng)站的MIME類型介紹
- Mime類型與文件后綴對(duì)照表
- response.setContentType()的作用及MIME參數(shù)詳解
- 下載站mime屬性設(shè)置(讓文件可下載)
- IIS自定義MIME類型的步驟
- 自己動(dòng)手打造ajax圖片上傳(網(wǎng)上沒有的)
- 基于C# winform實(shí)現(xiàn)圖片上傳功能的方法
- jquery+php+ajax顯示上傳進(jìn)度的多圖片上傳并生成縮略圖代碼
- php多個(gè)文件及圖片上傳實(shí)例詳解
- yii實(shí)現(xiàn)圖片上傳及縮略圖生成的方法
- jQuery插件jcrop+Fileapi完美實(shí)現(xiàn)圖片上傳+裁剪+預(yù)覽的代碼分享
- http圖片上傳安全性問題 根據(jù)ContentType (MIME) 判斷其實(shí)不準(zhǔn)確、不安全
相關(guān)文章
jQuery Div中加載其他頁面的實(shí)現(xiàn)代碼
在做一個(gè)表單簽核系統(tǒng)時(shí),需在要簽核頁面中將表單內(nèi)容(事先做好的PHP頁面)顯示出來,于就是想能不能利用Ajax技術(shù)把這個(gè)事先做好的頁面嵌入到簽核頁面中呢?2009-02-02在jQuery1.5中使用deferred對(duì)象 著放大鏡看Promise
在那篇經(jīng)典的關(guān)于jQuery1.5中Deferred使用方法介紹的文章中(譯文見這里),有下面一段描述2011-03-03jQuery實(shí)現(xiàn)新消息在網(wǎng)頁標(biāo)題閃爍提示
這篇文章主要介紹了jQuery實(shí)現(xiàn)新消息在網(wǎng)頁標(biāo)題閃爍提示的相關(guān)資料,需要的朋友可以參考下2015-06-06Jquery加載時(shí)從后臺(tái)讀取數(shù)據(jù)綁定到dropdownList實(shí)例
從后臺(tái)讀取數(shù)據(jù)綁定到dropdownList,option選項(xiàng)value動(dòng)態(tài)賦值,具體實(shí)現(xiàn)如下,感興趣的朋友可以參考下哈2013-06-06jQuery中常用的遍歷函數(shù)用法實(shí)例總結(jié)
這篇文章主要介紹了jQuery中常用的遍歷函數(shù)用法,以實(shí)例形式分析并總結(jié)了jquery中常見的遍歷函數(shù)使用方法與注意事項(xiàng),具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-09-09