1. 原則最好保證所有流的編碼一直;
2. xmlhttp在處理返回的 responseText的時候,是把resposeBody
按UTF-8編碼進解碼考形成的,如果服務器送出的確實是UTF-8的數據流的時候漢字會正確顯示,否則顯示亂碼
3.在Dreamweaver,或是ZendStudio中製作的頁面默認是GB2312的,所以當通過GB2312編碼的頁面傳到ajax的 response後編碼方式產生了不一致。所以出現亂碼。
解決方案:
在PHP中用header聲明送出的字符串編碼方式:header('Content-Type:text/html;charset=GB2312');
其他編程腳本相應的是:
ASP:Response.Charset("GB2312")
JSP:response.setHeader("Charset","GB2312");
或者在PHP頁面echo輸出時將字符編碼爲UTF-8:
$content = iconv("GB2312", "UTF-8", $content);
或者強制將PHP頁面轉換爲UTF-8編碼格式(用EmEditor另存爲UTF-8編碼格式),這樣可以不做任何處理就能正常接收。
以上是修改server端的方法,下面是修改javascript的方法