最近在做乙個專案,遇到ajax中文亂碼問題,經過乙個下午的努力終於完美解決,現將心得寫下來,希望對那些還困繞在這個問題而頭痛不已的人們有所幫助。
眾所周知,使用ajax傳送和接收中文引數時,如果不在客戶端和伺服器做相應的處理就會出現亂碼問題,在網上相應的文章也不少,但是有的情況下很難從中找到符合自己理想的答案,我今天就是在網上找了很多,但是都差不多,講asp和jsp的比較多(我是用的php),所以到最後都沒找到自己滿意的答案。
ajax的中文亂碼可以大概分為兩中,第一種是向伺服器端傳送中文引數時(xmlhttp.open(「get|post」,url,true)),伺服器端接收到的為亂碼,這個也是我今天遇到的問題,沒做處理之前,在ie裡是正常的,但是在firefox裡面就出現了亂碼,我先把接收到引數輸出到乙個文字裡,沒有發現什麼問題,鬱悶了,然後我就把查詢語句在輸出來觀察(我這裡是要從資料庫裡查出與引數相關的東西),終於發現問題,ie和firefox輸出的引數不一樣,雖然漢字上都一樣,但是和前後連線上有細小的區別,於是認定了是編碼問題,在網上查詢了相關資料,都沒能解決問題,但是得到一些啟示,因為ajax傳送資料都是採用utf-8編碼的方式傳送的,所以要在伺服器端進行編碼轉換(我這裡頁面是採用gb2312編碼的,如果是採用utf-8的話應該不會有這步的問題),所以我在伺服器端進行了utf-8轉gb2312,
$str=iconv("utf-8","gb2312",$str);
[url]
AJAX中文亂碼PHP完美解決
geturl encodeuri geturl 兩次也可以寫成geturl encodeuri encodeuri geturl 然後再到伺服器端進行url解碼 str urldecode str 解碼 str iconv utf 8 gb2312 str 編碼轉換 注意 解碼必須在編碼轉換前面,不...
完美解決PHP中文亂碼
一 首先是php網頁的編碼 1.php檔案本身的編碼與網頁的編碼應匹配 a.如果欲使用gb2312編碼,那麼php要輸出頭 header content type text html charset gb2312 靜態頁面新增,所有檔案的編碼格式為ansi,可用記事本開啟,另存為選擇編碼為ansi,...
完美解決PHP中文亂碼
一 首先是php網頁的編碼 1.php檔案本身的編碼與網頁的編碼應匹配 a.如果欲使用gb2312編碼,那麼php要輸出頭 header content type text html charset gb2312 靜態頁面新增lowhtfs2312 所有檔案的編碼格式為ansi,可用記事本開啟,另存...