讓人頭痛的Jquery亂碼問題。
10多年的尚志網(wǎng)站建設經(jīng)驗,針對設計、前端、開發(fā)、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。營銷型網(wǎng)站建設的優(yōu)勢是能夠根據(jù)用戶設備顯示端的尺寸不同,自動調整尚志建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)公司從事“尚志網(wǎng)站設計”,“尚志網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。
原因很簡單: 其實他的中文亂碼就是因為contentType沒有指定編碼,對于不同Jquery的版本中這個地方有不同的設置,就拿我遇到的,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方法提交后會出現(xiàn)亂碼的問題就可以完美解決。
如果還有亂碼現(xiàn)象,只能說你接收頁面的編碼也有問題, 這是由于異步對象XMLHttpRequest在處理返回的responseText的時候,是按UTF-8編碼進行解碼的。所以post方式的話,必須把這個頁面另存一下,將頁面文件的編碼改為 UTF-8 (請務必記住)。
![[置頂] Jquery亂碼終極解決方案](http://images.cnitblog.com/blog/92874/201212/29173150-33bcc6388df7406c8e2c1cdf1ad1f6dd.png)
沒修改前,整個FROM表單數(shù)據(jù)全部為亂碼狀態(tài),對于這種情況,大家按以上方法可以輕松解決。
以下是一些特別情況的問題總結,來源于網(wǎng)絡:
JQuery Ajax提交出現(xiàn)中文亂碼的解決辦法2
前使用Jquery的時候一直沒有發(fā)現(xiàn),用Ajax提交的時候會出現(xiàn)亂碼,我猜測可能是因為編碼的原因
可能存在以下幾點原因:
1.HTML的編碼不統(tǒng)一:如頁面用的GB2312,好像JQuery對它支持不太好。以前我一直都是用UTF-8的,一直都沒有發(fā)現(xiàn);
2.文件的編碼,這個不好在表面上看到,簡體中文版的操作系統(tǒng)存的文本格式的文件默認是 GB2312,建議把文件換成UTF-8格式的
最簡單的解決辦法,把提交的中文文本用 JS的 escape 處理一下,就不會現(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ù)字的用戶名檢測正確,但是對中文的時候,檢測出錯,經(jīng)過在網(wǎng)上查詢一段時間,終于找到了原因,是亂碼問題,解決方法:
1、只要在ajax中有數(shù)據(jù)提交時,如果頁面編碼不是utf-8的,都應該對提交的數(shù)據(jù)進行編碼,js的編碼函數(shù)為escape()
2、在服務器端頁接收數(shù)據(jù)后進行解碼,然后對數(shù)據(jù)進行相關的處理后再編碼
3、返回到客戶端后再解碼
4、如果沒有提交數(shù)據(jù),而是直接從服務器端獲取數(shù)據(jù),那直接在服務器頁面設置Response.Charset="gb2312"即可,不用再編碼解碼
vbscript中分別對應js中的escape()和unescape()函數(shù) 程序代碼
-------------------------------------------------------------------------------
通過以下處理方式得到解決:
傳遞參數(shù)的時候 對參數(shù)進行編碼priceName="encodeURI(priceName)",也可以用encodeURIComponent();
服務器端無需做其他處理: String priceName = request.getParameter("priceName");
分享題目:[置頂] Jquery亂碼終極解決方案
網(wǎng)站地址:http://www.chinadenli.net/article2/igppic.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設、軟件開發(fā)、微信小程序、靜態(tài)網(wǎng)站、App設計、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)