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));

……
……

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

查看所有标签

猜你喜欢:

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

PHP高级开发技术与应用

PHP高级开发技术与应用

曹铁群、孙一江、张永学 / 清华大学出版社 / 2002-5-1 / 32.00

作为一本介绍PHP高级开发技术的书籍,本书并不像一般介绍PHP语言的书籍那样讲述大量的语法规则,罗列大量的函数,而是着眼于PHP在Web中的实际应用,特别是PHP对最新技术的支持,比如WAP技术、XML技术等。 本书涉及到的内容主要有:高级环境配置、高级语法和应用、正则表达式、面向对象技术、高级图像技术、用PHPLIB实现模板的处理、用PHPDoc实现文档的自动生成、PHP与组件技术、PH......一起来看看 《PHP高级开发技术与应用》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

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

正则表达式在线测试