php中csv乱码怎么办

  介绍

小编给大家分享一下php中csv乱码怎么办,希望大家阅读完这篇文章后大所收获、下面让我们一起去探讨吧!

php csv乱码的解决办法:首先重写函数方法,然后添加转码功能,代码如”功能fputcsv2(处理美元,数组字段分隔符=美元“){…}”。

 php中csv乱码怎么办

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乱码怎么办