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 :

Encodage xml et redirection..


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif

    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    354
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2011
    Messages : 354
    Par défaut Encodage xml et redirection..
    Bonjour, je suis désespéré avec l'encodage que j'ai en horreur car je n'y comprends rien...

    A part utf8_encode/utf8_decode, rien ne marche comme je voudrais.

    Alors je vais tout vous décrire en détails de mes fichiers en espérant que quelqu'un puisse m'aider,

    sur mon application tout s'affiche bien... sauf que là, je passe par de l'ajax, je récupère des données dans mon fichier xml dont certaines ont des accents, je les vois nickel avec l'accent, mais après pour compliquer la chose, je voudrais faire une redirection avec cette valeur passées en GET.

    Je vais mettre en commentaires ce qui a été testé, j'ai testé plusieurs combinaisons de truc, je sais que c'est la méthode bourrin, mais comment savoir ce qui cloche lorsque vous affiché la valeur par un écho et que vos accents s'affichent bien et qu'après en GET, ça ne passe pas, sachant que le GET permet ensuite de faire une requête en base de données ou tout est mis avec accent.

    Les en-tête testés de mon XML :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    header('Content-Type: text/xml;charset=utf-8');
    echo("<?xml version='1.0' encoding='UTF-8' ?>");
     
    //header('Content-Type: text/xml;charset=ISO-8859-15');
    //echo("<?xml version='1.0' encoding='ISO-8859-15' ?>");
    ensuite j'avais mes valeurs (dont des accents) qui étaient insérées

    Précision, j'ai aussi testé les accents avec &eacute; etc... pour les fonctions html.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    echo("<option>".$element."</option>");
    //echo(utf8_encode("<option>".$element."</option>"));
    //echo(htmlentities("<option>".$element."</option>"));
    //echo(htmlspecialchars("<option>".$element."</option>"));
    Ensuite un formulaire normal ou je récupère la valeur récupérée en ajax, puis je la transmets sur un fichier et quand je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    echo $_POST['element'];
    //echo utf8_decode($_POST['element'];)
    //echo htmlentities($_POST['element'];)
    //echo htmlspecialchars($_POST['element'];)
    Bon en fait le echo fonctionne la plupart du temps, ça m'affiche bien le truc, mais quand je fais ensuite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    // header('Location: '.URL_LOC.$_POST['element']);
    // header('Location: '.utf8_decode(URL_LOC.$_POST['element']));
    ...
    la redirection plante (ma redirection 404 s'exécute)

    Et quand j'enlève la redirection, le é est représenté par "%E9".

    Voilà, j'en ai marre, je m'y prends surement mal, mais ça c'est ma hantise l'encodage dans le développement. Je m'en sortais tout le temps par des simples utf8_encode ou decode, urlencode, etc... et des &eacute; etc... du bidouillage quoi.

    Auriez vous une idée? Merci de m'avoir lu

  2. #2
    Membre Expert
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 149
    Par défaut
    Ce n'est pas pour rien qu'on dit de ne pas travailler avec des fichiers contenant des caractères spéciaux...
    Le mieux que tu ais à faire c'est de nettoyer tous ces caractères sur tes données et tes noms de fichier.

    Car même si tu règles ton souci, dès que tu migreras ton application ailleurs tu seras dans un autre contexte et tu seras de nouveau confronté à un problème d'encodage ou système.

  3. #3
    Membre très actif

    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    354
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2011
    Messages : 354
    Par défaut
    Bonjour,

    je veux me servir de ces noms pour les passer dans mon url pour le référencement.

    Mais en faisant un str_replace() sur les lettres accentuées, ça semble fonctionner, j'ai mes valeurs "désaccentuées" en paramètres et ça trouve bien la valeur dans ma base. Apparemment que l'on cherche en sql que l'on mette "éric" ou "eric", on trouve la valeur qu'on veut donc c'est bon je pense.

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

Discussions similaires

  1. Problème d'encodage XML
    Par tinkerbell dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 29/07/2009, 11h37
  2. Problème d'encodage xml
    Par snake_th dans le forum Format d'échange (XML, JSON...)
    Réponses: 0
    Dernier message: 24/09/2008, 10h20
  3. [XML] Gros problème encodage XML
    Par k2006 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 15/07/2008, 18h23
  4. Encodage XML UTF vs ISO
    Par kenobyalex dans le forum VBA Access
    Réponses: 1
    Dernier message: 10/04/2008, 10h59
  5. problème d'encodage xml
    Par freestyler dans le forum XML/XSL et SOAP
    Réponses: 5
    Dernier message: 04/06/2007, 10h57

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