PHP生成CSV文件用Excel打开乱码问题
发布时间:2022-01-18 23:39:55 所属栏目:PHP教程 来源:互联网
导读:PHP生成UTF-8编码的CSV文件用Excel打开中文显示乱码,是由于输出的CSV文件中没有BOM,我们只要简单处理一下即可,那么如何在PHP中输出BOM呢?在所有内容输出之前: print(chr(0xEF).chr(0xBB).chr(0xBF)); 例.php生成csv时我们可以这样: ?php $now = gmdate(D
PHP生成UTF-8编码的CSV文件用Excel打开中文显示乱码,是由于输出的CSV文件中没有BOM,我们只要简单处理一下即可,那么如何在PHP中输出BOM呢?在所有内容输出之前: print(chr(0xEF).chr(0xBB).chr(0xBF)); 例.php生成csv时我们可以这样: <?php $now = gmdate("D, d M Y H:i:s"); header("Expires: Tue, 03 Jul 2001 06:00:00 GMT"); header("Cache-Control: max-age=0, no-cache, must-revalidate, proxy-revalidate"); header("Last-Modified: {$now} GMT"); // force download header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download"); // disposition / encoding on response body header("Content-Disposition: attachment;filename={$filename}"); header("Content-Transfer-Encoding: binary"); $items_data=array( '0'=>array('title'=>'test test test1'), '1'=>array('title'=>'test test test2'), '2'=>array('title'=>'test test test3') ) print(chr(0xEF).chr(0xBB).chr(0xBF));//设置utf-8 + bom ,处理汉字显示的乱码 echo array2csv($items_data); function array2csv(array &$array) { if (count($array) == 0) { return null; } ob_start(); $df = fopen("php://output", 'w'); fputcsv($df, array_keys(reset($array))); foreach ($array as $row) { fputcsv($df, $row); } fclose($df); return ob_get_clean(); } ?> 还有一种办法就是使用Office,打开Microsoft wordlink_affiliate">Office 2010 Excel,数据-自文本,导入此csv格式文件,同样要求选择编码,这里选择UTF-8,打开后,发现乱码消除. (编辑:好传媒网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |