首页 >后端开发 >PHP问题 >php导出mysql csv乱码问题怎么解决

php导出mysql csv乱码问题怎么解决

藏色散人
藏色散人原创
2022-11-19 09:49:101872浏览

php导出mysql csv乱码问题的解决方法:1、打开相应的php文件;2、在文件头部写入BOM标识即可,代码如“fwrite($fp, chr(0xEF) . chr(0xBB) . chr(0xBF));”。

php导出mysql csv乱码问题怎么解决

本教程操作环境:Windows7系统、PHP8.1版、Dell G3电脑。

php导出mysql csv乱码问题怎么解决?

导出csv在windows下打开容易出现乱码,需要在文件头部写入BOM标识,已经封装成一个函数了

/**
 * @param array $rows
 * @param array $fields
 * @param string $filename
  */
  function kg_export_csv($rows, $fields = [], $filename = '')
  {
    $filename = $filename ?: kg_uniqid();
  
    header("Content-Type: text/csv");
    header("Content-Disposition:filename={$filename}.csv");
  
    $fp = fopen('php://output', 'w');
  
    fwrite($fp, chr(0xEF) . chr(0xBB) . chr(0xBF));
  
    if ($fields) fputcsv($fp, $fields);
  
    $index = 0;
  
    foreach ($rows as $row) {
     if ($index == 1000) {
     $index = 0;
     ob_flush();
     flush();
    }
    $index++;
    fputcsv($fp, $row);
  }

关键部分,文件头写入BOM标识

fwrite($fp, chr(0xEF) . chr(0xBB) . chr(0xBF));

推荐学习:《PHP视频教程

以上是php导出mysql csv乱码问题怎么解决的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn