[Php] Encodage à la génération d'un fichier
Dacobah
Messages postés
260
Date d'inscription
Statut
Membre
Dernière intervention
-
Dacobah Messages postés 260 Date d'inscription Statut Membre Dernière intervention -
Dacobah Messages postés 260 Date d'inscription Statut Membre Dernière intervention -
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 tranformation 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 !
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 tranformation 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 !
A voir également:
- [Php] Encodage à la génération d'un fichier
- Comment réduire la taille d'un fichier - Guide
- Fichier bin - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Forcer la suppression d'un fichier - Guide
3 réponses
Bonjour,
essaie de forcer le charset avec un header dans ton fichier qui génère le fichier CSV.
Adns
essaie de forcer le charset avec un header dans ton fichier qui génère le fichier CSV.
Adns
Bonjour
Le problème, c'est que tu sembles tout faire en UTF-8 (ce qui est bien) sans en être vraiment conscient (ce qui est moins bien). Tu regardes certainement ton fichier csv avec un éditeur qui, lui, s'attend à un autre encodage.
Regarde dans les options de ton éditeur, si tu as le choix de l'encodage, passe en UTF-8 et tout devrait rentrer dans l'ordre.
Le problème, c'est que tu sembles tout faire en UTF-8 (ce qui est bien) sans en être vraiment conscient (ce qui est moins bien). Tu regardes certainement ton fichier csv avec un éditeur qui, lui, s'attend à un autre encodage.
Regarde dans les options de ton éditeur, si tu as le choix de l'encodage, passe en UTF-8 et tout devrait rentrer dans l'ordre.