本帖最后由 longfei_liuweitao 于 2010-07-12 13:52:21 编辑

解决方案 »

  1.   


    头部加了这两句吗?
    header("Content-type:application/vnd.ms-excel");
    header("Content-Disposition:filename=$filename.xls");
      

  2.   

    +就是headerheader("Content-type:application/vnd.ms-excel");
    header("Content-Disposition:filename=test.xls");
      

  3.   

    加上了:
    header("Content-type: application/vnd.ms-excel;charset=utf-8");
    header("Content-Disposition: attachment; filename=users.xls");
      

  4.   


    检查下 文件编码是否是 UTF-8 无BOM头。
      

  5.   

    问题说明:如果将header改为 text/html;charset=utf-8的话,页面不是乱码,就是导出excel的时侯中文就乱了
    -----------------------------------------------
    说明数据确实是utf-8的,生成excel文件后,你确定excel文件是utf-8编码么?
      

  6.   

    执行echo $table,时显示是乱码吗?这个应该是UTF8格式输出吧。
    在导出EXCEL时设置一下编码格式。
      

  7.   

    header("Content-type: application/vnd.ms-excel;");
    header("Content-Disposition:filename=test.xls");$datas = array(
    array('id'=>2,'email'=>'[email protected]','name'=>'aa'),
    array('id'=>4,'email'=>'[email protected]','name'=>'的决定咖啡店'),
    array('id'=>5,'email'=>'[email protected]','name'=>'CC'),
    array('id'=>7,'email'=>'[email protected]','name'=>'打开附件的客服金额看风景'),
    array('id'=>9,'email'=>'[email protected]','name'=>'ss')
    );
    $table = "<table border='1'>";
    $table .= "<tr>";
    $table .= "<td>id</td><td>email</td><td>name</td>";
    $table .= "</tr>";
    foreach($datas as $key=>$value)
    {
    $table .= "<tr>";
    $table .= "<td>".$value["id"]."</td>";
    $table .= "<td>".$value["email"]."</td>";
    $table .= "<td>".iconv("UTF-8", "gb2312",$value["name"])."</td>";
    $table .= "</tr>";}
    $table .= "</table>";
    echo $table;
    中文部分用iconv函数转换一下编码
    浏览器默认编码是gb2312