php fputcsv中文乱码,怎样处理php csv乱码问题_后端开发

php csv乱码的处理办法:起首重写fputcsv要领;然后增加转码功用,代码如“function fputcsv2($handle, array $fields, $delimiter = "){...}”。

67ad944f1b8c870c3899d1752be4e6bb.png

引荐:《PHP视频教程》

PHP导出CSV中文乱码的处理要领:UTF-8转GB2312

一、背景

因项目需求,要导出Excel表格数据,运用fputcsv要领导出数据碰到中文乱码,去网上查找了一遍处理要领。

1)设置header编码修改成UTF-8

2)在输出内容前先输出BOM头

以上两种要领均无效,不知是不是我的环境缘由照样其他,暂不去穷究。

二、处理要领

因为项目默许是UTF-8编码,Excel不支持,所以得把UTF-8转GB2312。

【中心】重写fpucsv要领,增加转码功用:

/**

* 重写fputcsv要领,增加转码功用

* @param $handle

* @param array $fields

* @param string $delimiter

* @param string $enclosure

* @param string $escape_char

*/

function fputcsv2($handle, array $fields, $delimiter = ",", $enclosure = '"', $escape_char = "\\") {

foreach ($fields as $k => $v) {

$fields[$k] = iconv("UTF-8", "GB2312//IGNORE", $v); // 这里将UTF-8转为GB2312编码

}

fputcsv($handle, $fields, $delimiter, $enclosure, $escape_char);

}

运用例子:

function test () {

// 文件名

$filename = "定单查询效果" . date('Y-m-d H:i:s');

// 设置输出头部信息

header('Content-Encoding: UTF-8');

header("Content-Type: text/csv; charset=UTF-8");

header("Content-Disposition: attachment; filename={$filename}.csv");

$tableHead = array('#', '定单id', '定单号', '分类', '客户信息', '工匠信息', '定单状况', '施工状况', '付款状况', '定单金额', '下单时候', '备注');

// 猎取句柄

$output = fopen('php://output', 'w') or die("can't open php://output");

// 输出头部标题

fputcsv2($output, $tableHead);

$list = array();

foreach ($list as $item) {

fputcsv2($output, array_values($item));

}

// 封闭句柄

fclose($output) or die("can't close php://output");

}

以上就是怎样处理php csv乱码问题的细致内容,更多请关注ki4网别的相干文章!

收藏 | 0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值