Tag Archive for 'apache'

Apache DefaultCharSet导致网页乱码

最近做的一个项目,把demo传到客户服务器上,有些模块变成了乱码,设置所有的JS运行都出了问题。而在我本机环境、手上另外一台服务器上测试均无问题。

那么,先明确导致乱码的核心问题:编码不一致!
呃,如果是个人兴趣问题,打了脑残体之类的文字,则不在本文讨论范围。

1、网页的meta信息。例如:

<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />

2、文件保存时的编码选择。例如:

3、程序通过header()函数指定编码。例如php:

header(”Content-Type:text/html; charset=utf-8″);

4、客户端浏览器的编码选择

5、服务器端的WEB服务器编码设置,如Apache、IIS。

上述4个地方,有任何一个编码不一致,都可能导致乱码。例如网页的meta你设置的是utf-8,而保存时就选择gbk编码。再或者你网页是utf-8编码,你在浏览器里选择gbk编码查看,那么…可以尝试一下

今天我遇到的问题呢?首先可以确保的是meta和文件保存时的编码是一致的,均为utf-8。但当我用浏览器访问出问题的网页时,浏览器自动选择了gbk编码,乱码!当我把浏览器编码切换到utf-8编码时,网页正常。

抓取网页的header信息。发现utf-8的网页被服务器发送回来竟然变成了gbk

如此看来一定是apache的设置问题咯。

打开apache的配置文件,httpd.conf。

查找:defaultcharst

果然有这么一行  AddDefaultCharset GB2312。

注释掉,保存,重启apache。

一切恢复正常。

小结:

1、如果 apache 设置了 defaultcharset ,并且程序里没有使用header()指定编码。那么最终输出以apache的AddDefaultCharse为主。

2、除非特别必要,否者不要设置apache的AddDefaultCharse。

图文详解:配置Apache+Mysql+PHP开发环境

尽管配置PHP开发环境很简单,但是对于一些刚入门或者尚未入门的同学来说,仍然是件“痛苦”的事情。

如果你想”偷懒”,这里有满足你的办法。

Windows环境下,配置apache+mysql+php,最简单的方法莫过于使用一些打包好的套件。

个人推荐:WAMP

menu_wamp.gif

整个安装过程很简单:

1、下载最新的安装包(官方网站SourceForge),当前版本WampServer 2.0a,集成了apache 2.2.6、 PHP 5.2.5 + PECL、SQLitemanager、MySQL 5.0.45、Phpmyadmin。

2、运行安装包。

a)首先会弹出一个“重要提示”,告诉你,“不要从wamp5.1.x版本,如果之前安装过wamp5.1.x,那么安装新版本之前,请保存数据,卸载wamp5并删除wamp目录”。如果是全新安装的话,直接点“是”即可。

wamp-install-01.jpg

b)弹出安装向导。不用理会,“next”即可

wamp-install-02.jpg

Continue reading ‘图文详解:配置Apache+Mysql+PHP开发环境’