Mark Ajax引數中文編碼亂碼問題

2021-07-04 11:18:42 字數 903 閱讀 5551

link:

ajax不支援多種字符集,其預設的字符集是utf-8,所以在應用ajax技術的程式中應及時進行編碼轉換,否則對於程式中出現的中文字元將變成亂碼。一般在以下兩種情況下將產生亂碼。

1.傳送路徑的引數中包括中文,在伺服器端接收引數值時產生亂碼

將資料提交到伺服器有兩種方法:一種是使用get方法提交;另一種是使用post方法提交。使用不同的方法提交資料,在伺服器端接收引數時解決中文亂碼的方法是不同的。具體解決方法如下。

(1)當接收使用get方法提交的資料時,要將編碼轉換為gbk或是gb2312。例如:將省份名稱的編碼轉換為gbk的**如下。

string selprovince = request.getparameter("parprovince");//獲取選擇的省份

selprovince = new string(selprovince.getbytes("iso-8859-1"),"gbk");

(2)由於應用post方法提交資料時,預設的字元編碼是utf-8,所以當接收使用post方法提交的資料時,要將編碼轉換為utf-8。例如,將使用者名稱的編碼轉換為utf-8的**如下。

string username = request.getparameter("user");//獲取使用者名稱

username = new string(username.getbytes("iso-8859-1"),"utf-8");

2.返回到responsetext或respon***ml的值中包含中文時產生亂碼

由於ajax在接收responsetext或respon***ml的值時是按照utf-8的編碼格式進行解碼的,所以如果伺服器端傳遞的資料不是utf-8格式,在接收responsetext或respon***ml的值時就可能產生亂碼。解決的方法是保證從伺服器端傳遞的資料採用utf-8的編碼格式。

解決Fiddler檢視Post引數中文亂碼的問題

解決方法 1.win r 2.開啟登錄檔編輯器 輸入regedit 回車 是 3.hkey current user software microsoft fiddler2 4.右鍵新建,選字串值,加上headerencoding,然後值輸入 gbk 建議設定為utf 8 headerencodin...

Thinkphp在iis環境下中文引數亂碼

1,無法獲取中文引數解決方案 iis的url重寫模組,重寫後的中文編碼也是gbk,如果你的頁面是utf 8編碼,那麼重寫引數將會失效。像這些情況,我們就需要使用php內建的轉碼函式來處理編碼問題了 即,接受引數後將引數轉變為utf 8格式,否則資料查詢會失效 方案1 name iconv gbk u...

ensure ascii 引數引起的中文編碼問題

在使用json.dumps時要注意乙個問題 import json print json.dumps 中國 u4e2d u56fd 輸出的會是 中國 中的ascii 字元碼,而不是真正的中文。這是因為json.dumps 序列化時對中文預設使用的ascii編碼.想輸出真正的中文需要指定ensure ...