300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > php怎么导出csv设置编码

php怎么导出csv设置编码

时间:2023-07-25 06:00:36

相关推荐

php怎么导出csv设置编码

后端开发|PHP问题

php,csv

后端开发-PHP问题

源码下载上传下载,ubuntu上应用商店,安装tomcat9出错,如何正确使用爬虫,为啥会有人认为php也能写前端,seo小姐姐lzw

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

餐饮数据分析系统源码,vscode 搜索快捷键,ubuntu打开后缀,tomcat部署到网络,华为手机爬虫,php构造函数和析构函数,北京顺义百度推广seo,网站通用插件lzw

php怎么导出csv设置编码?PHP下导出csv乱码?

tpshop tp3源码,ubuntu如何换成mac,tomcat网盘下载文件,蚊子怎么消灭爬虫,php编程1-100的素数,seo平头哥lzw

我们之前都是使用PHPexcel导出我们的一些数据的,由于Phpexcel对导出超出1万条数据会导至超时和内存暴涨,后来我们就改用数据导出成csv格式的。

相信很多朋友们在用PHP导出csv文件时都遇到各种乱码问题。网上搜了一堆都是用加BOM的方式来解决,这个方法我试了好多次在我们的测试和生产环境下都不管用,不知道是为什么。

后来使用iconv方法将导出的内容转码由utf-8转为gb2312,奇迹终于出来了,可以正常显示了,不过经同事发现,我们导出400多条数据里竟然少了几十条数据(我是一条一条转码然后拼接出出的csv字符串)。于是到度娘上找iconv转码失败的问题,发现iconv原来是有BUG的,对于某些中文字转不了,转不了还不能跳过然后返回空值,是这个原因导致少了几十条数据,同时给出了用mb_convert_encoding 这个方法来转换。于是稍作修改就改成了用mb_convert_encoding方法了,在本地机测试非常正常,代码如下:

$str = mb_convert_encoding($str,gb2312);

但发布到线上导出数据还是一堆乱码,但与之前不作转码时的乱码还不一样,说明mb_convert_encoding方法是起作用的。查了一下mb_convert_encoding方法有三个参数$from_encoding,第三个参数是可选参数,网上大多数的示例都是不使用第三个参数的,第三个参数默认也是null值。于是我把它用起来改成

$str = mb_convert_encoding($str,gb2312,utf-8);

在本地开发机上测试是正常的,发布到生产环境,吼吼,一切正常了。

这究竟是为什么? 真没时间去深究了,有知道的同学请告诉我一下吧

《PHP视频教学》

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。