web-dev-qa-db-fra.com

écrire des caractères utf-8 dans un fichier avec fputcsv en php

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

Une partie de mon code:

$df = fopen($filepath, 'w');
fputcsv($df, array($coupon->code, $discount->label));
23
Yusef Mohamadi

Essaye ça:

$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 codage correct.

104
Hardy

Essayez ceci aussi:

$df = fopen($filepath, 'w');
$array = array($coupon->code, $discount->label);
$array = array_map("utf8_decode", $array);
fputcsv($df, $array);
22
robssanches

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 PHP.

0
Syno