内容简介:服务器上有一个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)); …… ……
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- MySQL对JSON类型UTF-8编码导致中文乱码探讨
- tomcat,jboss,weblogic乱码问题以及Java中各种乱码问题大汇总
- Perl中文乱码问题
- Perl中文乱码问题
- zabbix中文乱码解决方法
- pycharm中文乱码问题 总结
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。