php亂碼原因分析

結構:

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,隨便輸入如下代碼

 

<?php
echo "神經啊揮灑薩哈斯啊三啊撒是";
?>

運行結果:

OK好了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章