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 :

Erreur encodage UTF-8


Sujet :

Langage PHP

Vue hybride

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

    Informations forums :
    Inscription : Novembre 2005
    Messages : 182
    Par défaut Erreur encodage UTF-8
    Bien le bonjour,

    Je récupère un flux rss qui a un problème d'encodage sur quelques caractères. Je ne peux pas modifier ce flux à la source vu que je n'en suis pas le propriétaire.

    J'ai donc trouvé une solution intermédiaire où je télécharge le xml sur mon serveur, je le réencode en UTF-8 et je le parse.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $fileName_tmp = file_get_contents($fileName);
    $fileName_tmp = file_put_contents($fileName, utf8_encode($fileName_tmp));
    J'ai également essayé avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $fileName_tmp = file_put_contents($fileName, mb_convert_encoding($fileName_tmp, 'UTF-8', mb_detect_encoding($fileName_tmp, 'ISO-8859-1', true)));
    Mon problème est le suivant : maintenant je n'ai plus de message d'erreur (parser error : Input is not proper UTF-8, indicate encoding !) lorsque je parse ce xml, par contre du coup tout le document est "sur"encodé. En clair, tout ce qui était déjà en UTF-8 est réencodé en UTF-8. ("N°" => "N°", "française" => "française")

    Ma question est existe-il un moyen de dire au parseur (xmlReader ici en l'occurence) d'ignorer les erreurs d'encodage ?

  2. #2
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 494
    Par défaut
    Le fichier XML source a des problèmes d'encodage, lesquels ?
    Es-tu sûr de ce que tu avances ?
    Ce ne serait pas ton serveur qui force l'encodage en ISO ?

    Quand au "surencodage" dont tu parles, tu affiches dans une page HTML le flux ?
    Dans ce cas quel est l'encodage du serveur, du fichier, des metas ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 182
    Par défaut
    Voici le header du rss source : <?xml version="1.0" encoding="UTF-8" ?>

    Comment je peux savoir si mon serveur force l'encodage ?

    Je ne fais qu'afficher les résultats du parsing éléments par éléments, brut pas de html.

    J'ai résolu mon problème de "surencodage" en faisant un double utf8_decode.

    Et je suis sûr de moi quant au pb d'encodage.
    J'ai fait un test tout bête en ajoutant le flux à Netvibes. Résultat, l'affichage bute sur le caractère bloquant (un "ç"). Je ne suis pas fou !

  4. #4
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 494
    Par défaut
    Je ne fais qu'afficher les résultats du parsing éléments par éléments, brut pas de html.
    Oui mais le document qui affiche le xml est encodé comment ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 182
    Par défaut
    C'est un var_dump.

    Et je ne vois pas comment je pourrais savoir comment est encodé mon fichier php.

    Mais le problème ne se situe pas à l'affichage mais au moment du parsing du fichier sur le serveur.

  6. #6
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 494
    Par défaut
    C'est un var_dump.

    Et je ne vois pas comment je pourrais savoir comment est encodé mon fichier php.

    Mais le problème ne se situe pas à l'affichage mais au moment du parsing du fichier sur le serveur.
    Oui mais ton var_dump est bien compris dans une page php, donc quel est l'encodage de cette page php
    Tout dépend de ce que tu utilises comme logiciel, mais en règle général c'est au moment de l'enregistrement donc il devrait suffire de faire un Enregistrer sous pour regarder les options d'encodage.

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

Discussions similaires

  1. Erreur encodage UTF-8
    Par Johngtrs dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 08/06/2012, 14h59
  2. Erreur encodage Sql Server UTF-8
    Par Nico820 dans le forum Outils
    Réponses: 2
    Dernier message: 18/01/2011, 16h24
  3. Pb Encodage UTF-8 pour Ooo
    Par Sylvain James dans le forum XMLRAD
    Réponses: 10
    Dernier message: 08/03/2006, 22h28
  4. Erreur encodage
    Par mandaillou dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 25/11/2005, 15h27
  5. [WebForms] Encodage, UTF-8 et accents
    Par alexischmit dans le forum Général Dotnet
    Réponses: 4
    Dernier message: 28/04/2004, 12h21

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