私は同じ問題を抱えていましたが、2つのことを組み合わせてそれを行いました:
最初に、テーブルの照合順序を UTF8 に変更する必要があります (例: "utf8_general_ci") (または、それを確認するだけです)。次に、MySQL クエリの後に次のコードを追加します。
mysql_query("SET NAMES utf8");
お気に入り
$result = mysql_query("SHOW COLUMNS FROM table WHERE Field NOT IN ('user_id', 'password')");
mysql_query("SET NAMES utf8");
そして、これをヘッダーとして使用します(ニーズに合わせて調整してください):
header('Content-Description: File Transfer');
header("Content-type: application/vnd.ms-excel");
header("Content-disposition: csv" . date("Y-m-d") . ".csv");
header("Content-disposition: filename=".$filename.".csv");
header('Content-Transfer-Encoding: binary');
header('Pragma: public');
print "\xEF\xBB\xBF"; // UTF-8 BOM
print $csv_output;
exit;