php fputcsv乱码的解决办法:1、将header函数放在fopen之前;2、通过“fopen('php://output', 'a');”直接输出到浏览器;3、在写入的第一个字符串开头加bom即可。
本文操作环境:windows7系统、php7.1版,dell g3电脑
如何解决php fputcsv 乱码问题?
php 用fputcsv()生成csv文件在windows excel 下打开乱码问题解决
csv文件在windows wps和我ubuntu16桌面版下打开正常。
但是使用windows excel 打开乱码。
解决:
function test() { $filename = 'demo'; // 几个header函数需要放fopen之前。不然会直接在浏览器页面打印输出。而不是文件下载 header('content-type: application/vnd.ms-excel'); header('content-disposition: attachment;filename="'.$filename.'.csv"'); header('cache-control: max-age=0'); //直接输出到浏览器 $fp = fopen('php://output', 'a'); //在写入的第一个字符串开头加 bom。 $bom = chr(0xef).chr(0xbb).chr(0xbf); $column = [ $bom.'姓名','性别', '年龄' ]; $data = [ '张三','男士', '21' ]; fputcsv($fp, $column); fputcsv($fp, $data); fclose($fp);}
推荐学习:《php视频教程》
以上就是如何解决php fputcsv 乱码问题的详细内容。