NO IMAGE

 
最近使用jQuery遇到中文亂碼問題,其實他的中文亂碼就是因為contentType沒有指定編碼,只需在jQuery.js中搜尋’contentType’
然後在application/x-www-form-urlencoded後面加上; charset=UTF-8
最終變成contentType:”application/x-www-form-urlencoded; charset=UTF-8″
問題搞定。

必要說明:

使用post方法會出現亂碼,這是由於非同步物件XMLHttpRequest在處理返回的responseText的時候,是按UTF-8編碼進行解碼的。所以post方式的話,必須把action.asp頁另存為時,第三項的編碼由 ANST 改為 UTF-8 (請務必記住).

 

—————————————————————————————
JQuery Ajax提交出現中文亂碼的解決辦法2

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

最簡單的解決辦法,把提交的中文文字用 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);

 

——————————————————————————-
解決的辦法上用js的編碼函式encodeURIComponent(string)處理一下,把中文”王曉明”編碼成”%E7%8E%8B%E6%99%93%E6%98%8E”,就OK了。

順便說一下,我的tomcat下的URIEncoding=UTF-8

——————————————————————————-
今天在使用jquery檢測使用者名稱的時候,對英文和數字的使用者名稱檢測正確,但是對中文的時候,檢測出錯,經過在網上查詢一段時間,終於找到了原因,是亂碼問題,解決方法:

1、只要在ajax中有資料提交時,如果頁面編碼不是utf-8的,都應該對提交的資料進行編碼,js的編碼函式為escape()
2、在伺服器端頁接收資料後進行解碼,然後對資料進行相關的處理後再編碼
3、返回到客戶端後再解碼
4、如果沒有提交資料,而是直接從伺服器端獲取資料,那直接在伺服器頁面設定Response.Charset=”gb2312″即可,不用再編碼解碼
vbscript中分別對應js中的escape()和unescape()函式 程式程式碼

 

——————————————————————————-
通過以下處理方式得到解決:

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

伺服器端無需做其他處理:  String priceName = request.getParameter(“priceName”);

搞定!!!

—————————————————————————