Bonjour à tous,
J'ai un souci. Je souhaite exporter des données au format CSV pour des clients. Le fichier est très bien lu par OpenOffice Calc sur mon linux, et il passe tout aussi bien sur le bloc-notes de Windows, mais dès que je l'ouvre avec Excel, c'est fini, les caractères spéciaux ne sont plus gérés et c'est le grand n'importe quoi. Quelqu'un a une idée de ce que je peux faire?
Voilà mon script :
Les lignes en commentaire correspondent à des alternatives que j'ai testé mais qui m'ont donné le même résultat final.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 header("Pragma: public"); header("Expires: 0"); // set expiration time header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Content-Type: application/txt; charset=UTF-8"); header('Content-Disposition: attachment; filename="' . $name . '.csv"'); //header('Content-type: application/octet-stream'); //$fp = fopen("php://output", 'w'); foreach($data as $ligne) { //fputcsv($fp, $ligne); foreach($ligne as $value) echo $value.','; echo "\n"; }
Je sais qu'Excel utilise par défaut le format Windows125x, ou un truc similaire, mas même en faisant des trucs du genre :
et en virant l'entête disant que c'est de l'UTF-8, j'obtiens le même problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part iconv("UTF-8", "Windows-1252", maData);
A l'heure actuelle, je fais un utf8_encode sur toutes mes données dans la fonction d'export.
J'ai presque envie de dire "pitié, sauvez ma chevelure" XD
Merci d'avance à tous!
Partager