温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

php生成csv乱码的解决方法

发布时间:2021-05-18 10:06:37 来源:亿速云 阅读:427 作者:小新 栏目:编程语言

这篇文章主要介绍了php生成csv乱码的解决方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

php生成csv乱码是因为输出的csv格式文件没有BOM,其解决办法就是使用BOM标示字符编码,代码如“header("Content-type:text/csv;charset=gb2312");”。

本文操作环境:windows7系统、PHP7.1版,DELL G3电脑

解决PHP 输出csv文件中文乱码

PHP 下载文件常采用字节流输出的方式。因此常用的下载csv格式代码如下:

header("Content-Type: application/force-download"); 
header("Content-type:text/csv;charset=gb2312"); 
header("Content-Disposition:filename=打开邮件导出".date("YmdHis").".csv"); 
echo "收件人邮箱,收件人姓名,发送时间\r";
 ob_end_flush();
 foreach($list as $rs) { 
echo $rs->toemail.",".$rs->name.",".date('Y-m-d H:i:s',$rs->addtime)."\r"; flush();
 }
 exit;

这样下载的csv文件使用记事本或者sublime text等编辑器打开是正常的,但是使用excel打开就会乱码,原因是输出的csv格式文件没有BOM,BOM的说法很多,正常情况下,在PHP中是需要去除BOM的,不过csv文件需要使用BOM标示字符编码。

解决方式如下:

header("Content-Type: application/force-download");
header("Content-type:text/csv;charset=gb2312");
header("Content-Disposition:filename=打开邮件导出".date("YmdHis").".csv");
echo chr(0xEF).chr(0xBB).chr(0xBF);
echo "收件人邮箱,收件人姓名,发送时间\r";
ob_end_flush();
foreach($list as $rs)
{
   echo $rs->toemail.",".$rs->name.",".date('Y-m-d H:i:s',$rs->addtime)."\r";
   flush();
}
exit;

由于Linux的换行符与window的差别。如果上述代码在Linux服务器中有不好的反应,可将 "\r" 改为 "\r\n"。

php是什么语言

php,一个嵌套的缩写名称,是英文超级文本预处理语言(PHP:Hypertext Preprocessor)的缩写。PHP 是一种 HTML 内嵌式的语言,PHP与微软的ASP颇有几分相似,都是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,现在被很多的网站编程人员广泛的运用。

感谢你能够认真阅读完这篇文章,希望小编分享的“php生成csv乱码的解决方法”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI