我的页面是这样写的:<html lang="gb2312" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=gb2312" />但是客户端firefox显示却总是乱码,我用http-fox查看通信过程,发现HTTP response中的content-type居然是:
Content-Type text/html; charset=UTF-8
为什么我的页面中的html的lang属性和meta标签设置的content-type都没有起作用?我只好在生成页面的php文件中加上header("Content-Type: text/html;charset=gb2312");这时firefox正确显示了页面,用http-fox查看发现http response中的content-type也正确。
请问这是为什么?

解决方案 »

  1.   

    header 优先级高于apache的和meta的这种原因可能是apache设置了黑认字符集为charset=UTF-8,或者你php文件的本身是utf-8的.或者你有BOM头为utf-8 或者你前端曾输出过header("Content-Type: text/html;charset=utf-8")
      

  2.   

    尽量使用符合w3c的html代码标准!就不会出现这种情况了!
      

  3.   

    三码合一啊
    文件编码
    html标签指定编码
    php程序指定编码如果有数据库,数据库也要指定编码