1

我正在使用 PHP 生成一个 CSV 文件并将其保存在硬盘上(我不想下载)。数据库字符集是utf8_general_ci并且其中有像度数符号 ( °) 这样的字符,它们在 PHPmyadmin 中完美显示。这些字符需要保存在 CSV 文件中。我所做的一切都是在 UTF-8 中,但文件是用 encoding 保存的ISO-8859-1。如果我开始使用该函数,当我在 excel 或任何其他文本编辑器中将其转换回时utf8_encode,其他字符会显示 ( )。我不知道出了什么问题,我花了几个小时来追踪它,但没有成功。ÂUTF-8

我试图SET NAMES utf8确定它是UTF-8,但这只会导致更多奇怪的字符并且没​​有UTF-8编码。使用 MySQLi 也是set_charset如此。将标头作为Content-type:text/html;charset=UTF-8CSV 仍然没有 utf-8 作为默认编码,也没有任何这些组合。

一些代码:

header("Content-type:text/html;charset=UTF-8");
$rMysqli = new mysqli("localhost", "user", "pass", "database");
$rCSV = fopen("test_".time().".csv", 'w');

$aCSVdata = array($var1, $var2, $var3);
fputcsv($rCSV, $aCSVdata, ",", "\"");

fclose($rCSV);

这几乎就是所有正在发生的事情。只是普通的 CSV 数据,只有特殊字符,例如°Ø

4

1 回答 1

7

...长篇大论的评论短...

Microsoft Office在编码方面是最差的。臭名昭著

(即一切都很好,除了 Excel。)

于 2012-12-17T10:57:00.893 回答