Ich möchte versuchen, ein persisches Zeichen in eine CSV-Datei in PHP zu schreiben. Ich verwende die fputcsv
-Funktion, aber wie kann man UTF-8-Zeichen mit fputcsv
in die CSV-Datei schreiben?
Teil meines Codes:
$df = fopen($filepath, 'w');
fputcsv($df, array($coupon->code, $discount->label));
Versuche dies:
$df = fopen($filepath, 'w');
fprintf($df, chr(0xEF).chr(0xBB).chr(0xBF));
fputcsv($df, array($coupon->code, $discount->label));
die Zeile fprintf($df, chr(0xEF).chr(0xBB).chr(0xBF));
schreibt den Dateiheader für die korrekte Kodierung.
Versuchen Sie auch dies:
$df = fopen($filepath, 'w');
$array = array($coupon->code, $discount->label);
$array = array_map("utf8_decode", $array);
fputcsv($df, $array);
Wenn Sie eine UTF-8-Datei für Excel erstellen möchten, verwenden Sie diese einfache Lösung:
$fp = fopen($filename, 'w');
//add BOM to fix UTF-8 in Excel
fputs($fp, $bom =( chr(0xEF) . chr(0xBB) . chr(0xBF) ));
Siehe die ursprüngliche Antwort hier auf der offiziellen PHP Seite.