Ecrire des caractères utf-8 à déposer avec fputcsv en php

Je veux essayer d'écrire un caractère persan dans un fichier CSV en PHP, j'utilise la fonction fputcsv mais comment écrire un caractère UTF-8 dans un fichier CSV avec fputcsv?

Partie de mon code:

$df = fopen($filepath, 'w');
fputcsv($df, array($coupon->code, $discount->label));
21
demandé sur Benjamin 2014-02-24 17:01:09

3 réponses

Essayez ceci:

$df = fopen($filepath, 'w');
fprintf($df, chr(0xEF).chr(0xBB).chr(0xBF));
fputcsv($df, array($coupon->code, $discount->label));

La Ligne fprintf($df, chr(0xEF).chr(0xBB).chr(0xBF)); écrit l'en-tête du fichier pour un encodage correct.

91
répondu Hardy 2014-02-24 14:50:11

Essayez ceci aussi:

$df = fopen($filepath, 'w');
$array = array($coupon->code, $discount->label);
$array = array_map("utf8_decode", $array);
fputcsv($df, $array);
22
répondu robssanches 2014-10-23 12:43:35

Si vous voulez créer un fichier UTF-8 pour excel, utilisez cette solution simple:

$fp = fopen($filename, 'w');

//add BOM to fix UTF-8 in Excel 
fputs($fp, $bom =( chr(0xEF) . chr(0xBB) . chr(0xBF) ));

Voir la réponse originale ici sur la page officielle de PHP.

0
répondu Syno 2018-08-27 07:57:34