關於ajax中文亂碼問題

2022-03-25 03:50:02 字數 1227 閱讀 6435

如果頁面設定的編碼格式不是utf-8

那麼中文就會出現亂碼

這種問題大致解決方法都是改頁面編碼 改請求頭charset

相信大家都試過很多 好用的不多 內部原理實在懶得看

來個簡單的解決辦法

首先處理ajax的請求資料

function

getsubstring()

for(i=0,l=texts.length;i)

s+="time=123";

s=s.replace(/%/g,"#");

return

s; }

encodeuricomponent會將string進行編碼為%加十六進製制的形式

服務端會解析這種格式 但是會是亂碼

string s=requset.getparameter("");

s=new string(s.getbytes(),"utf-8");

大部分的時候 是好用的 注意只是大部分的時候 比如 傳回去的是 "十一" 結果會正確

傳回去的是 "一十一" 結果會變得很奇怪 第乙個一丟了 我檢視getbytes()返回的資料 第三位 變成了 63 這個是 '?' 啊

也就是說有些時候getbytes()返回的資料不對 我們自己寫乙個好了

那麼阻止伺服器自己解碼 就把encodeuricomponent返回的%號替換成#

replace(/%/g,"#");

public string decodeutf(string s) throws

ioexception

system.out.println(

new string(b,"utf-8"));

}else

return

new string(b,"utf-8");

}public

boolean

getisutf(string s)

return

true

; }

public

byte getint(char

a)

return -1;

}public

byte getbyte(char a,char

c)

這樣呼叫decodeutf(string s)

就可以把字串反解碼了

當你還在被編碼弄得頭昏腦脹的時候 試試這個吧

Ajax中文亂碼問題

注意兩個問題 1 頁面 window.nl ad function 以上 表示在頁面載入完畢之後執行的ajax。並且在檔案都設定為utf 8格式,如 contenttype text html charset utf 8 pageencoding utf 8 2 後台 在傳送之前加上 respons...

Ajax 中文亂碼問題

ajax中文資料亂碼問題。1 向伺服器傳送請求資料在伺服器端必須經過內碼轉換才行。轉換 string value request.getparmater key value new string value.getbytes iso8859 1 gbk value已經由預設內碼轉換位gbk了 我遇到...

關於ajax提交中文亂碼的問題

幾天前,在用jquery以及extjs時發現,如果頁面採用pageencoding gbk 編碼,在使用這兩個js框架做ajax請求時,傳遞的中文引數就會變成亂碼。後來發現原來是這兩者的核心js中對於ajax請求都採用了預設的轉碼。此外,如果在所開發的系統中也採用的過濾器轉碼的話,乙個請求在進行了多...