我现在在用PHP写一个简单的系统,包含登陆等功能,我用session来管理会话,但是碰到这样一个问题:如果我用UTF-8格式储存网页,session cookie都没法用,提示Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent 之类的,所有与登录有关的全部失效
后来我知道这是UTF-8编码的BOM问题,但我将网页转换为UTF-8无BOM格式后,会话相关功能都正常了,但是页面中的中文全部显示为乱码 @_@ 一看,原来IE自动把编码识别为GB2312了……
我现在真的是没辙了,请问大家这个有解决办法吗,我的数据库等等都是UTF-8编码的,所以我想尽量全站都用UTF-8,谢谢大家了 
P.S 我的浏览器是VISTA自带的IE7

解决方案 »

  1.   

    <html>
    <head>
    <!--加上这个没有?-->
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    </head>
    <body>
    </body>或者
    <?php
    header("Content-type:text/html;charset=utf-8");
    ?>
      

  2.   

    header("Content-type:text/html;charset=utf-8");
    就这个啊!
      

  3.   

    方法一
    <html>
    <head>
    <!--加上这个没有?-->
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    </head>
    <body>
    </body>
    方法二
    <?php
    header("Content-type:text/html;charset=utf-8");
    ?>
    方法三
    看看你的开发环境或工具的编码设置问题
      

  4.   

    同上... 去除 UTF8 文件的 BOM 头....
      

  5.   

    你用的什么编辑的?DW和Editplus都可以自动去BOM的啊。
      

  6.   

    utf8文件BOM问题,可用ediptlus来清除头部BOM。
    建议楼主换编辑器,比如editplus,vim或eclipse pdt等