php导出mysql csv出现乱码是什么原因(附解决方法)

现php导出mysql csv出现乱码是什么原因,下面编程教程网小编带大家了解一下解决方法!

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

解决代码:

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

完整代码:

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);
}
以上是编程学习网小编为您介绍的“php导出mysql csv出现乱码是什么原因(附解决方法)”的全面内容,想了解更多关于 php入门 内容,请继续关注编程基础学习网。

本文标题为:php导出mysql csv出现乱码是什么原因(附解决方法)

基础教程推荐