Encodage à la génération d'un fichier [Résolu]

Messages postés
260
Date d'inscription
samedi 26 novembre 2005
Statut
Membre
Dernière intervention
28 septembre 2011
- - Dernière réponse : Dacobah
Messages postés
260
Date d'inscription
samedi 26 novembre 2005
Statut
Membre
Dernière intervention
28 septembre 2011
- 23 juil. 2011 à 23:31
Bonjour,

je génère un fichier CSV à partir d'un script PHP. C'est-à-dire que je fais une requête sur ma base de données, je récupère les champs à afficher, je constitue mon fichier CSV avec des intitulés et le résultat de ma requête ligne, par ligne. Jusque là, tout va bien.

Le soucis c'est que dans mon fichier CSV j'obtiens des prénoms avec des caractères étranges : Valérie au lieu de Valérie, michèle au lieu de Michèle, etc.

J'ai pensé à faire des conversions avec les fonctions d'encodage de php, mais le résultat est le même.
Idem pour les headers tels que header('Content-Transfer-Encoding: text/csv'); (car je force le téléchargement) : rien ne change.

Et surprise, le contenu de mon fichier appelé dans la page d'un navigateur m'affiche bien les bons prénoms avec les vrai accents.

Du coup je suis persuadé que mon problème provient de la transformation en fichier CSV, puisque c'est là que je vois ces affreux caractères.

Qu'en pensez-vous ? Avez-vous une idée pour m'éclairer ?

Merci d'avance à tous !

Gaël
Afficher la suite 

5 réponses

Meilleure réponse
Messages postés
496
Date d'inscription
jeudi 7 juillet 2005
Statut
Membre
Dernière intervention
24 mai 2017
2
3
Merci
C'est très simple, le fichier CSV est créé en ISO et tu y envoies de l'UTF-8.
Donc, à la lecture du fichier avec Excel, tu as des caractères accentués non reconnus.
Par la suite, si tu fais une injection du fichier CSV vers la DB ou autre, …
comme c’est de l’UTF-8, il y a aucun problème. Vu que tu travails en UTF-8.

Sinon, header('Content-Type: text/csv; charset=iso-8859-1'); affiche les caractère en ISO.
Mais par la suite, tu aurras des problèmes sur ton site car il fonctionne en UTF-8.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 138 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_stay
Messages postés
496
Date d'inscription
jeudi 7 juillet 2005
Statut
Membre
Dernière intervention
24 mai 2017
2
3
Merci
Je crois même que si tu envoies de l'UTF-8 vers ton fichier et que tu utilises ce
header('Content-Type: text/csv; charset=iso-8859-1');
il affichera pas Valérie au lieu de Valérie mais pas Valérie non plus.
ça sera toujours illisible.

Donc, tu dois décoder chaque passage.
Mais je crois que dans ton cas, tu ne dois rien faire.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 138 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_stay
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
21
3
Merci
Salut,

Doit en conclure qu'Excel n'est pas foutu d'ouvrir simplement un CSV en UTF-8 alors qu'il n'y a pas de problème avec Open Office ??

Je ne sais pas quelle version d'excel tu as, ni si c'est lui que tu utilises, ni comment tu procédes pour l'ouverture, mais dans tous les cas, sauf à utiliser le notepad de WIN98, tu as possibilité de choisir l'encodage. Avec les versions d'excel un peu ancienne il me semble que le choix n'est donné que si tu l'ouvres manuellement (à partir du menu d'excel)

Je suis de l'avis de Stay, je pense que tu n'as rien à faire, ... sauf peut être changé de tableur ^^

Cordialement,


Kohntark -

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 138 internautes nous ont dit merci ce mois-ci

Commenter la réponse de kohntark
Messages postés
260
Date d'inscription
samedi 26 novembre 2005
Statut
Membre
Dernière intervention
28 septembre 2011
0
Merci
Merci beaucoup stay !
Commenter la réponse de Dacobah
Messages postés
260
Date d'inscription
samedi 26 novembre 2005
Statut
Membre
Dernière intervention
28 septembre 2011
0
Merci
Oui toi et Stay, vous avez raison. Le problème vient du réglages des options lors de l'ouverture du fichier sous mon tableur. Car si je l'ouvre dans ma page tous les caractères marchent bien.

Merci à vous deux
Commenter la réponse de Dacobah