最近在編寫的PHP專案中用到了Ajax技術,使用者體驗大有提升,但同時又引入了一個新的問題,就是Ajax返回的responstText裡面的中文多半會是亂碼,即使我把頁面編碼指定為UTF -8。
這是因為XMLHttp在處理回傳的responstText的時候把responstBody按UTF-8編碼進行解碼的,如果伺服器端送出的資料流的確是UTF-8編碼,那麼中文字就會正確顯示,但如果是GBK或其他編碼則會出現上述情況。
解決的方法是在伺服器端回傳的資料流中加上一個header,指明送出的資料流是什麼編碼,這樣XMLHttp就不搞亂了。
Php代碼
header('Content-Type:text/html; charset=GB2312');