php下载utf8编码的csv,用excel打开乱码

栏目: PHP · 发布时间: 6年前

内容简介:服务器上有一个utf8编码的csv文件,经过php下载到本地之后,用excel打开,发现乱码了。原因是这个csv文件没有BOM头。BOM头是放在UTF-8编码的文件的头部的三个字符(0xEF 0xBB 0xBF,即BOM)占用三个字节,用来标识该文件属于UTF-8编码。所以在php里面下载utf8编码的csv的时候,需如下方代码所示,添加BOM头:

服务器上有一个utf8编码的csv文件,经过 php 下载到本地之后,用excel打开,发现乱码了。原因是这个csv文件没有BOM头。

BOM头是放在UTF-8编码的文件的头部的三个字符(0xEF 0xBB 0xBF,即BOM)占用三个字节,用来标识该文件属于UTF-8编码。

所以在php里面下载utf8编码的csv的时候,需如下方代码所示,添加BOM头:

$downloadUrl = '/home/nemo/firDir/test.csv';
$fileName = 'test.csv';
ini_set('memory_limit', '128M');
header('Content-type: application/octet-stream;charset=utf-8');
header('Content-Disposition: attachment; filename=' . $fileName);
ob_end_clean();
echo chr(0xEF).chr(0xBB).chr(0xBF); // 输出BOM头
readfile($downloadUrl);

因为php不能识别bom头,当需要读取用户上传的文件内容时,也需要删除bom头。

$filePath = '/home/nemo/firDir/test.txt';
$data = file_get_contents($filePath);
$data = trim($data, chr(0xEF) . chr(0xBB) . chr(0xBF));

……
……

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

后现代经济

后现代经济

姜奇平 / 中信出版社 / 2009-7 / 45.00元

《后现代经济:网络时代的个性化和多元化》站在历史“终结”与“开始”的切换点上,以价值、交换、货币、资本、组织、制度、福利等方面为线索,扬弃现代性经济学,对工业化进行反思,深刻剖析了“一切坚固的东西都烟消云散”的局限性,在此基础上展开对现代性经济的解构和建构。“9·11”中坚固的世贸中心大楼灰飞烟灭,2008年坚固的华尔街投资神话彻底破灭,坚固的雷曼兄弟公司在挺立了158年后烟消云散……一切坚固的东......一起来看看 《后现代经济》 这本书的介绍吧!

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具