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,随便输入如下代码
1.
2. echo "神经啊挥洒萨哈斯啊三啊撒是";
3. ?>
运行结果:
OK好了
摘自 shyandsy的无边海洋