通过PHP导出CSV以获取utf-8字符

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过PHP导出CSV以获取utf-8字符相关的知识,希望对你有一定的参考价值。

我需要用php导出.csv文件。我使用下面的代码来做到这一点:

header('Content-Encoding: UTF-8');
header('Content-type: application/csv; charset=UTF-8');
header("Content-Disposition: attachment; filename=$fn");
echo "xEFxBBxBF"; // UTF-8 BOM
print($csv); 

$csv包含一些波斯语字符。当我用ms excel打开导出的文件时,显示错误的字符。当我打开文件时,记事本字符显示正确。我怎么解决这个问题?

答案

这就是我做到的。

header('Content-Encoding: UTF-8');
header('Content-type: text/csv; charset=UTF-8');
header("Content-Disposition: attachment; filename=file.csv");
header("Pragma: no-cache");
header("Expires: 0");
header('Content-Transfer-Encoding: binary');
echo "xEFxBBxBF";

早些时候我正在获取垃圾字符,现在输出正确的数据。

以上是关于通过PHP导出CSV以获取utf-8字符的主要内容,如果未能解决你的问题,请参考以下文章

使用 PHP 获取 CSV 导出的列名和数据 (MYSQL)

关于将Excel导出成UTF-8编码的csv文件的问题?

如何使用 php 以 .dat 或 .txt 格式导出文件

php 导出excle的.csv格式的数据时乱码问题

php用csv文件导出大量数据

利用PHP的curl批量导出文件