您的位置 首页 技术

yii2导出csv文件乱码怎么办

yii导出CSV代码如下: /** * 导出csv * @author yhdsir * @param array $parameter header 表头 * @param ar…

yii导出CSV代码如下:

/** * 导出csv * @author yhdsir * @param array    $parameter header 表头 * @param array    $parameter data   数据 * @param string   $filename         导出名字 */public function export($parameter, $filename = ''){    if (empty($filename)) {        $filename = date('Y-m-d_H-i-s');    }    $filename = str_replace(array('"', "'", ' ', ','), '_', $filename) . '.csv';    if (is_array($parameter)) {        header('Content-Type: application/vnd.ms-excel');        header('Cache-Control: max-age=0');        header("Content-Disposition: attachment;filename={$filename}");        $fp = fopen('php://output', 'w');        //fwrite($fp, chr(0xEF) . chr(0xBB) . chr(0xBF));  // 添加 BOM        if (!empty($parameter['header']) && is_array($parameter['header'])) {            foreach ($parameter['header'] as $i => $v) {                // CSV的Excel支持GBK编码,一定要转换,否则乱码                 // $head[$i] = iconv('utf-8', 'gbk', $v);                 $parameter['header'][$i] = iconv('utf-8', 'gb2312//TRANSLIT//IGNORE', $v);            }            // 将数据通过fputcsv写到文件句柄             fputcsv($fp, $parameter['header']);        }        if (isset($parameter['data'])) {            foreach ($parameter['data'] as $row) {                foreach ($row as $i => $v) {                    $row[$i] = iconv('utf-8', 'gb2312//TRANSLIT//IGNORE', $v);                }                fputcsv($fp, $row);            }        }        fclose($fp);        return true;    }    throw new \yii\web\HttpException(500, "Not a valid parameter!");}

iconv — 字符串按要求的字符编码来转换

说明

iconv ( string $in_charset , string $out_charset , string $str ) : string

将字符串 str 从 in_charset 转换编码到 out_charset。

参数

in_charset:输入的字符集。

out_charset:输出的字符集。

str:要转换的字符串。

返回值:返回转换后的字符串, 或者在失败时返回 FALSE。

推荐学习:yii教程

以上就是yii2导出csv文件乱码怎么办的详细内容,更多请关注24课堂在线网其它相关文章!

本文来自网络,不代表24小时课堂在线立场,转载请注明出处:https://www.24ketang.cn/26520.html

为您推荐

返回顶部