IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

ecrire un fichier en utf-8


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 53
    Par défaut ecrire un fichier en utf-8
    Bonjour tout le monde,

    J'ai besoin de générer dynamiquement un fichier qui doi être au format UTF-8.
    Le problème c'est que lorsque je génère mon fichier sans manip particulière, il est automatiquement au format ANSI...
    J'ai vu qu'il existait la fonction pack() qui permait de spécifier le codage d'un caractères et j'ai lu quelque part qu'il suffisait d'ajouter un caractère codé en UTF-8 en début de fichier pour que le fichier soit lui aussi en UTF-8.
    J'ai alors éditer avec un éditeur hexa un fichier enregistré en UTF-8 (enregistré avec le bloc-note), repérer le code de début du fichier et je l'ai placé dans mon fichier avec php en utilisant la fonction pack()...
    Mon fichier est bien généré en UTF-8 seulement je vois apparaitre les caractères que j'ai ajouté alors que dans mon fichier édité avec winHex (celui du bloc-note), ils n'apparaissent pas !

    Vous avecz une idée sur ce qu'il faut faire ?
    Je m'y prends surement très mal, mais j'ai cherché un peu partout et j'ai pas trouvé plsu d'infos...

    Merci à vous...

    Laurent

  2. #2
    Membre expérimenté
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Par défaut
    si tu écris dans un fichier texte, tu peux passer les chaines que tu écris dedans dans la fonction utf8_encode()... :
    Globalement inoffensif
    Merci de respecter les règles du forum.
    Aucune question technique par MP !
    _______________________________________________________________________
    Cours Ruby et Ruby on Rails (RoR) - Cours PHP - FAQ Ruby / Rails - Livres Ruby / Rails
    Ajax facile avec Ruby on Rails, Prototype, script.aculo.us et les RJS
    Tutoriaux HTML/CSS et PHP

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 53
    Par défaut
    J'ai déjà essayé, seulement si les chaînes que je passe ne comporte pas de caractères spéciaux, le fichier ne se met pas au format UTF-8...
    En revanche ça marche très bien s'il y a des accents par exemple, et c'est l'astuce que j'ai trouvé pour le moment mais c'est pas très propre... J'ajoute en début de mon ficheir un commentaire avec des accents...

    ++

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 53
    Par défaut
    Je recherche toujours...
    Personne ne connais quels octets il faut mettre en début de fichier pour avoir un fichier au format UTF-8 ?

    Merci ++

  5. #5
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Salut

    Je pense que titoumimi a raison et qu'il n'y a pas grand-chose à ajouter.
    Pour t'assurer que tout le fichier est au format UTF8, tu peux utiliser les fonctions de gestion de tampon, cf. ob_start() : de cette manière, tu écris de manière normale sans utf8_encode() pendant l'exécution de tout ton code, puis, à la fin, tu récupères le tampon et tu l'affiches en lui appliquant une fois pour toutes utf8_encode().

    Pour rappel, UTF8 n'est pas un format de fichier mais plutôt un encodage des caractères d'un fichier.

  6. #6
    Membre émérite Avatar de macbook
    Inscrit en
    Février 2006
    Messages
    838
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 838
    Par défaut
    Et puis un texte en UTF-8 sans caractères spéciaux ressemble à s'y méprendre à un texte ISO-8859-1 sans caractère spéciaux.

    L'encodage n'encode que les caractères spéciaux.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 53
    Par défaut
    Merci pour vos réponses...
    En fait peu importe le contenu du fichier... c'est juste que j'ai bsoin que mon fichier soit enregistré en UTF-8 car ce ficheir est un fichier xml qui doit être lu par un flash, et flash ne veut pas de mon fichier s'il n'est pas en UTF-8... Je vais tout de même essayé de faire comme dit Kirkis !

    ++

  8. #8
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    Justement, je crois que tu fais erreur : c'est justement uniquement le contenu qui peut être en UTF8, non le fichier !
    Comme le dit macbook, UTF8 ne se distingue de l'ISO que par la forme qu'il donne aux caractères spéciaux (hors alphabet anglais, en gros).

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 53
    Par défaut
    Citation Envoyé par Kirkis
    Justement, je crois que tu fais erreur : c'est justement uniquement le contenu qui peut être en UTF8, non le fichier !
    Comme le dit macbook, UTF8 ne se distingue de l'ISO que par la forme qu'il donne aux caractères spéciaux (hors alphabet anglais, en gros).
    Oui c'est possible que je me plante complètement...
    Je vais refaire une série de test, et je vous tiendrai informé de ce qu'il en est ! Merci en tout cas pour vos conseils à tous !

    Laurent ++

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 53
    Par défaut
    En effet j'avais pas tout à fait saisi l'affaire... alors que ce que je faisais était correct, je m'explique...
    Lorsque je génère mon fichier, je l'encode en UTF-8, si le contenu comporte des accents, ils sont alors encodés, sinon rien ne se passe (comme prévu).
    Flash n'interprète pas le fichier xml s'il comporte des accents non encodés alors qu'il le fait très bien si le contenu n'a pas d'accents.

    Citation Envoyé par Kirkis
    Justement, je crois que tu fais erreur : c'est justement uniquement le contenu qui peut être en UTF8, non le fichier !
    ... en effet, c'est que j'avais du mal à saisir parce que je lorsque j'enregistrais mon fichier avec le bloc-note, je spécifiais le codage en UTF-8 en pensant que c'était le fichier lui-même alors que pas du tout, lorsque je faisais ça, il encodait mon fichier en UTF-8 si certains caractères le nécessitaient !

    Voilà c'est maintenant limpide comme de l'eau de roche et encore merci de m'avoir éclairé !

    ++

  11. #11
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Par défaut
    J'en suis bien aise car je me rends compte que je parle de moins en moins bien le français...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. ecrire un fichier xml encodage UTF-8
    Par totoche dans le forum Langage
    Réponses: 4
    Dernier message: 09/10/2009, 17h07
  2. Ecrire un fichier en UTF-8
    Par italiasky dans le forum Forms
    Réponses: 2
    Dernier message: 15/10/2008, 13h06
  3. Ecrire un fichier.inf
    Par Furius dans le forum Windows
    Réponses: 10
    Dernier message: 19/10/2005, 12h15
  4. [Débutant][JFileChooser] Ecrire dans fichier
    Par Clark dans le forum Agents de placement/Fenêtres
    Réponses: 7
    Dernier message: 16/05/2005, 17h47
  5. Réponses: 4
    Dernier message: 19/04/2005, 12h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo