PHP MySQL csv导出

PHP MySQL csv导出,php,mysql,csv,export-to-csv,Php,Mysql,Csv,Export To Csv,我正在尝试将MySQL数据导出到csv文件。这是我的密码 header("Cache-Control: max-age=0, no-cache, must-revalidate, proxy-revalidate"); header("Content-Type: application/octet-stream"); header("Content-Disposition: attachment;filename=data.csv"); header(

我正在尝试将MySQL数据导出到csv文件。这是我的密码

header("Cache-Control: max-age=0, no-cache, must-revalidate, proxy-revalidate");           
header("Content-Type: application/octet-stream");           
header("Content-Disposition: attachment;filename=data.csv");
header("Content-Transfer-Encoding: binary");   
$output = fopen('php://output', 'w');
fputcsv($output, array('Id', 'Data 1', 'Data 2','Data 3'));

foreach ($data as $row)
{                    
     fputcsv($output, $row, ',', '"'); //arabic data
}
fclose($output);           
return chr(255) . chr(254) . mb_convert_encoding(ob_get_clean(), 'UTF-16LE', 'UTF-8');
数据包含阿拉伯语和印地语。代码的结果是所有数据在一个单元格中以逗号分隔,并换行

我想下载每个单元格中都有数据的文件。我在最后一段代码中尝试了这个

return ob_get_clean();
它显示每行中的数据,但数据未正确加载

如何解决这个问题?

mysqli\u set\u charset()函数指定从数据库服务器发送数据和向数据库服务器发送数据时要使用的默认字符集

请在Mysql查询之前使用

mysqli_set_charset( $db, 'utf8');
标题('Content-Type:text/csv;charset=utf-8');添加到代码中,但不起作用。