php导出excel乱码 本帖最后由 longfei_liuweitao 于 2010-07-12 13:52:21 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 头部加了这两句吗?header("Content-type:application/vnd.ms-excel");header("Content-Disposition:filename=$filename.xls"); +就是headerheader("Content-type:application/vnd.ms-excel");header("Content-Disposition:filename=test.xls"); 加上了:header("Content-type: application/vnd.ms-excel;charset=utf-8");header("Content-Disposition: attachment; filename=users.xls"); 检查下 文件编码是否是 UTF-8 无BOM头。 问题说明:如果将header改为 text/html;charset=utf-8的话,页面不是乱码,就是导出excel的时侯中文就乱了-----------------------------------------------说明数据确实是utf-8的,生成excel文件后,你确定excel文件是utf-8编码么? 执行echo $table,时显示是乱码吗?这个应该是UTF8格式输出吧。在导出EXCEL时设置一下编码格式。 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 求解thinkphp模版变量的输出问题 求一个Android Activity跳转的例子,在线等 求教一个关于PHP,时间判断的问题 有关网址的正则表达式看不懂? 自写的简单的mysql类,但其中有点关于析构函数的小问题! session刷新后丢失的问题 请教高人指点:如何在PHP网站中提供动态服务,例如在线玩游戏?技术上怎么实现??? 想做个分类信息站。大家给点意见 ! 我编的验证用户名和密码的函数程序清单. jsp中如何调用php?? 请问有什么论坛系统是开源的,免费用于商业的吗? 关于like模糊搜索多个字段的问题,
头部加了这两句吗?
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:filename=$filename.xls");
header("Content-Disposition:filename=test.xls");
header("Content-type: application/vnd.ms-excel;charset=utf-8");
header("Content-Disposition: attachment; filename=users.xls");
检查下 文件编码是否是 UTF-8 无BOM头。
-----------------------------------------------
说明数据确实是utf-8的,生成excel文件后,你确定excel文件是utf-8编码么?
在导出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