結構:
index.html--->ajax.js
dispatch.php---->addclassify.php----->database.php
打開index.html後,頁面顯示正常,中英文均OK。點擊添加,ajax.js發送請求到dispatch,dispatch根據請求功能碼分發到addclassify,該文件負責添加,會用到database.php中的函數,然後addclassify用echo返回結果。添加成功返回ok,添加失敗返回錯誤原因。
奇怪的事情出現了,ajax返回回來的總是亂碼。
以前亂碼是因為通信編碼不一致問題。但是現在我的index.heml是utf-8,ajax是utf-8,php.ini默認字符集也是utf8。
之前有一個html和php也是這種架構,但那兩個程序就運行正常。
一覺睡醒,想到了另一種可能。這個dispatch.php在服務器上存放的時候就是亂碼。
ssh連上去,vim一看,我x你媽,html文件都正常,所有php文件裡面漢字都是亂碼。
我是在windows下面用zend stuio寫php,dreamweaver寫html。那麼就是說dreamweaver會把網頁存放成utf8,zend stuidio則不會,因為zend studio編寫的php文件保存為ANSI,所以上傳服務器後中文亂碼。
臨時解決方案:把所有zend寫的php文件,用記事本打開,另存時選擇utf-8。OK了。
終極解決方案:修改zend studio設置。我用的是zend studio 9,可能不同版本該設置選項位置不同,讀者自己找。
工具欄:project-----> properties 在這個窗口裡看到Resource,將text file encoding修改成UTF-8,保存即可。
測試下:
項目中新建文件1.php,隨便輸入如下代碼
1. <?php
2. echo "神經啊揮灑薩哈斯啊三啊撒是";
3. ?>
運行結果:
OK好了
摘自 shyandsy的無邊海洋