(鸟哥好老的文章,其实最近才看到..这个之前也看过部分资料)
转自http://www.laruence.com/2008/04/17/110.html
首先, 关闭PHP配置文件php.ini中的default_charset:
1. 页面没有指定charset , Apache配置defaultcharst gbk , 页面文件编码是utf-8
结果: 乱码,结论:当页面没有指明charset的时候,Apache的defaultcharset起作用
2. 页面指定charset为utf-8, Apache配置defaultcharset gbk. 页面文件是utf-8
结果还是出现乱码。
结论:当Apache配置了DefaultCharset, 将忽略页面的charset申明。
3. PHP header申明charset为utf8, Apache配置defaultcharst gbk,页面文件编码是utf8
页面正常
当Apache不指定defaultcharset的时候,页面编码由页面自己的meta标签指定。
当Apache指定的时候,将忽略页面中的meta标签指定的编码. 但是容许脚本直接header编码方式给客户端