我以CSV为例:
Type, जिल्ला शिक्षा कार्यालय डडेलधुरा,NGOI,NGO Request,21,0,0 Response, 4,0,0
并且它有utf-8字符,我想将它导出到excel所以我发布它并将其导出到excel并在参考了stackoverflow上的几个问题之后我做了如下:
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header("Content-Type: text/csv; charset=utf-8");
header('Content-Disposition: attachment; filename=file.csv');
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
print $_POST['csv_data'];exit;
csv很好地导出为excel但未转换的字符编码显示如下:जिलà¥à¤²à¤¾ शिकà¥à¤·à¤¾ कारà¥à¤¯à¤¾à¤²à¤¯ डडेलधà¥à¤°à¤¾
以及何时添加
echo "\xEF\xBB\xBF";
转换字符编码但数据显示在一列中,如下所示:
Type, जिल्ला शिक्षा कार्यालय डडेलधुरा,NGOI,NGO
Request,21,0,0
Response, 4,0,0
答案 0 :(得分:1)
UTF8 + CSV + Excel已知是一个有问题的组合。 Excel只是不太擅长导入CSV。
您应该尝试的一件事是在CSV文件的开头添加UTF8 BOM character;这可能有助于Excel弄清楚如何处理它。
我很乐观,这会有所帮助,但如果没有,你可能不得不重新考虑使用CSV。
您可以使用的其他选项包括XML,并在PHP中创建实际的Excel文件(有许多库可以执行此操作,最好的是PHPExcel)。
希望有所帮助。