介绍
小编给大家分享一下php中csv乱码怎么办,希望大家阅读完这篇文章后大所收获、下面让我们一起去探讨吧!
php csv乱码的解决办法:首先重写函数方法,然后添加转码功能,代码如”功能fputcsv2(处理美元,数组字段分隔符=美元“){…}”。
引用>
![]()
php导出csv中文乱码的解决方法:utf - 8转GB2312
一、背景
因项目需求,要导出Excel表格数据,使函数用方法导出数据遇到中文乱码,去网上查找了一遍解决方法。
1)设置头编码修改为utf - 8
2)在输出内容前先输出BOM头
以上两种方法均无效,不知是否我的环境原因还是其他,暂不去深究。
二,解决方法
由于项目默认是utf - 8编码,Excel不支持,所以得把utf - 8转GB2312。
【核心】重写fpucsv方法,添加转码功能:
/* * *重写函数方法,添加转码功能 *处理(@param美元 * @param数组$字段 * @param字符串分隔符 * @param字符串$圈地 * $ escape_char @param字符串 */fputcsv2(美元处理函数,数组$,$分隔符=?“,$圈地=& # 39;“& # 39;,$ escape_char=癨 \”) { foreach(领域k=美元比;$ v) { 字段($ k)美元=iconv (“UTF-8",“GB2312//IGNORE",美元v);//这里将utf - 8转为GB2312编码 } 函数句柄,字段,美元分隔符,美元圈地,escape_char美元); }使用例子:
功能测试(){//文件名 $ filename=岸┑ゲ檠峁?。日期(& # 39;Y-m-d H:我:& # 39;);//设置输出头部信息 头(& # 39;内容编码:utf - 8 # 39;); 头(“内容类型:文本/csv;charset=UTF-8"); 头(“附加项:附件;文件名={$ filename} .csv"); $ tableHead=阵列(& # 39;# & # 39;& # 39;订单id # 39;, & # 39;订单号& # 39;,& # 39;分类& # 39;,& # 39;客户信息& # 39;,& # 39;工匠信息& # 39;,& # 39;订单状态& # 39;,& # 39;施工状态& # 39;,& # 39;付款状态& # 39;,& # 39;订单金额& # 39;,& # 39;下单时间& # 39;,& # 39;备注& # 39;);//获取句柄 输出美元=fopen (& # 39; php://输出# 39;,& # 39;w # 39;)或死亡(“停下来# 39;t打开php://output");//输出头部标题 fputcsv2(输出,tableHead美元); $=列表数组(); foreach(列表项美元){ fputcsv2(输出美元,元素(项目)美元); }//关闭句柄 文件关闭(输出)美元或死亡(“停下来# 39;t php://output"); }看完了这篇文章,相信你对php中csv乱码怎么办有了一定的了解,想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!
php中csv乱码怎么办