probleme charset avec XMLHTTPREQUEST

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par e-kiwi, 17 Novembre 2006.

  1. e-kiwi
    e-kiwi WRInaute accro
    Inscrit:
    23 Décembre 2003
    Messages:
    13 198
    J'aime reçus:
    1
    Bonjour,

    les XMLHTTPREQUEST sont censées me semble t'il renvoyer les réponses en utf8.

    Cependant en les utilisant, j'ai des problèmes d'encodage de caractères, ma page qui recois les données issus du XMLHTTPREQUEST est bien en utf8, mais l'affichage de ces données est incorrecte (accent affichés en '?')

    si je fais utf8_encode() de mon résultat, cela fonctionne, mais je n'ai aps envie de les coller partout. comment faire pour régler ce problème ?

    précisions :
    c'est la fonction echo qui affiche pas en utf8 si elle est dans la réponse
    si mes données sont dans du xml, ca passe bien

    imaginons j'appele en XMLHTTPREQUEST une page toto.php
    si dans toto.php j'ai : <? echo 'vélo'; ?>
    le 'é' sort en '?'
    si dans mon toto.php j'ai : <DATA>vélo</DATA>
    le é sort bien


    merki
     
  2. Serious
    Serious WRInaute passionné
    Inscrit:
    21 Novembre 2005
    Messages:
    1 834
    J'aime reçus:
    0
    Non, il te renvoie simplement les donnees demandees. Si celles-ci sont en utf8, tant mieux mais ce n'est pas necessairement le cas.
    Donc tes donnees sont probablement en iso-8859-1 (configuration par defaut d'apache).
    Donc soit tu passes par du XML en indiquant l'encodage, soit tu convertis tes donnees sur le serveur, soit tu les convertis a l'arrivee.
     
  3. oxman
    oxman WRInaute discret
    Inscrit:
    21 Juin 2004
    Messages:
    111
    J'aime reçus:
    0
    Le plus simple et propre reste de mettre en entête de chaque fichier :
    <?php header("Content-Type: text/html; charset=utf-8");?>

    Pour "modifier" la valeur donnée par Apache.
     
  4. e-kiwi
    e-kiwi WRInaute accro
    Inscrit:
    23 Décembre 2003
    Messages:
    13 198
    J'aime reçus:
    1
    <?php header("Content-Type: text/html; charset=utf-8");?> ne change rien :(

    j'ai essayé les 2 en iso et les 2 en utf8
     
  5. blman
    blman WRInaute accro
    Inscrit:
    5 Septembre 2003
    Messages:
    2 719
    J'aime reçus:
    3
    E-kiwi, le XMLHTTPREQUEST te renvoie des données d'une BDD j'imagine ? La BDD est-elle bien en UTF ?
     
  6. e-kiwi
    e-kiwi WRInaute accro
    Inscrit:
    23 Décembre 2003
    Messages:
    13 198
    J'aime reçus:
    1
    non effectivement elle n'y est pas, mais meme sur des echos de texte simple, ca marche pas non plus :
    echo 'vélo' ne fonctionne pas
     
  7. blman
    blman WRInaute accro
    Inscrit:
    5 Septembre 2003
    Messages:
    2 719
    J'aime reçus:
    3
    C'est quoi ton éditeur de code ? Il te génère bien du code en UTF ?

    Si tu ouvre ton fichier PHP avec notepad++ par exemple, et que tu le configure en UTF-8 (notepad++ : format > encoder en UTF8), est-ce que ça marque vélo ou v?lo ?
     
  8. darkbob
    darkbob Nouveau WRInaute
    Inscrit:
    29 Novembre 2004
    Messages:
    27
    J'aime reçus:
    0
    Essaye d'ajouter htmlentities avant l'affichage.
     
  9. blman
    blman WRInaute accro
    Inscrit:
    5 Septembre 2003
    Messages:
    2 719
    J'aime reçus:
    3
    htmlentities ou htmlspecialchars, c un pansement( mais qui fonctionne aussi).

    Mais ça devrait marcher si le code que tu retourne e-kiwi est bien en UTF-8 donc :
    - pour ton fichier PHP : il faut qu'il soit coder en UTF8 avec notepad++ (configurer en UTF8) par exemple ou que tu retourne du texte encodé en UTF-8 avec utf8_encode()
    - pour ta BDD : qu'elle soit en UTF8 ou que tu encode les données avec utf8_encode()

    ATTENTION : avec utf8_encode(), certains caractères ne passent pas. Je crois qu'il faut faire le test avec le signe euro (de mémoire). Sinon, avec cette fonction, il faut bien faire attention de transformer du latin en utf. Si tu essaie de transformer de l'utf en utf, ça va merder.
     
  10. e-kiwi
    e-kiwi WRInaute accro
    Inscrit:
    23 Décembre 2003
    Messages:
    13 198
    J'aime reçus:
    1
    htmlentities ne change rien

    blman> quel fichier php à ouvrir en utf-8 ?
     
  11. blman
    blman WRInaute accro
    Inscrit:
    5 Septembre 2003
    Messages:
    2 719
    J'aime reçus:
    3
    Tu code dans quel éditeur e-kiwi ?
     
  12. e-kiwi
    e-kiwi WRInaute accro
    Inscrit:
    23 Décembre 2003
    Messages:
    13 198
    J'aime reçus:
    1
    Programmer Notepad
     
  13. blman
    blman WRInaute accro
    Inscrit:
    5 Septembre 2003
    Messages:
    2 719
    J'aime reçus:
    3
    Notepad sur un windows FR, j'imagine. Donc c normal, tes caractères sont en latin. Il faut que tu code en UTF8 avec un éditeur qui permet de faire ça.
     
  14. oxman
    oxman WRInaute discret
    Inscrit:
    21 Juin 2004
    Messages:
    111
    J'aime reçus:
    0
  15. tangui
    tangui WRInaute impliqué
    Inscrit:
    10 Février 2005
    Messages:
    583
    J'aime reçus:
    0
    [mode ContinueTheTroll="on"]
    PSPad :mrgreen:
    J'ai testé Notepad++ et PSPad, et il n'y a pas photo... PSPad a bcp plus d'options interessantes ;)
    [mode ContinueTheTroll="off"]
     
  16. spout
    spout WRInaute accro
    Inscrit:
    14 Mai 2003
    Messages:
    9 163
    J'aime reçus:
    338
  17. rog
    rog WRInaute passionné
    Inscrit:
    21 Septembre 2006
    Messages:
    1 346
    J'aime reçus:
    0
    intéressant comme problème

    et changer le charset de la page html en iso ne serait pas plus simple ?

    rog
     
  18. e-kiwi
    e-kiwi WRInaute accro
    Inscrit:
    23 Décembre 2003
    Messages:
    13 198
    J'aime reçus:
    1
    elle est déjà défini en iso, mais le problème apparemment est que le fichier xml n'a pas été crée en utf-8, et du coup quelquesoit le charset, ca ne marche pas (la seule solution qui marche est utf8_encode() mais il faudrait trouver une solution autre pour ne aps modifier tout le code
     
  19. Serious
    Serious WRInaute passionné
    Inscrit:
    21 Novembre 2005
    Messages:
    1 834
    J'aime reçus:
    0
    tu declares quoi comme encodage pour ton fichier XML?
     
  20. rog
    rog WRInaute passionné
    Inscrit:
    21 Septembre 2006
    Messages:
    1 346
    J'aime reçus:
    0
    moi j'ai recemment le prob pour l'affichage en russe de mon binder

    bah j'ai pas mal transpiré

    il n'y a qu'en écrasant le header apache sur le fichier inclus que j'ai réussi à avoir un affichage utf8

    rog

    si tu passais tout en iso tu n'aurai pas de probleme
     
  21. benjiman
    benjiman WRInaute discret
    Inscrit:
    9 Octobre 2005
    Messages:
    219
    J'aime reçus:
    0
    J'avais le meme probleme que toi et voici ma solution:

    Sur le fichier appelé par XMLHTTPREQUEST, je convertis toutes les données écrites avec (en php) rawurlencode.
    Ensuite, en javascript, lorsque je récupere les données, j'utilise la fonction en javascript: unescape.

    Et la, plus aucun soucis, et tout fonctionne !
    Tiens moi au courant si ca marche :wink:
     
  22. Liko
    Liko Nouveau WRInaute
    Inscrit:
    27 Novembre 2006
    Messages:
    1
    J'aime reçus:
    0
    Avec
    Code:
    header('Content-type: text/html; charset=iso-8859-1');
    et une récupération classique tu peux avec tes accents ou autre sans problemes, par contre et là je pose une question car avec cette solution ça ne retourne pas le symbole € et là je trouve pas de methode pour corriger le souci, si quelqu'un a ça dans ses cartons, j'achète :)
     
Chargement...
Similar Threads - probleme charset XMLHTTPREQUEST Forum Date
DC to WP : problème de charset Développement d'un site Web ou d'une appli mobile 28 Avril 2009
Problème charset Développement d'un site Web ou d'une appli mobile 14 Mai 2006
[Ajax] probleme de charset Développement d'un site Web ou d'une appli mobile 8 Mars 2006
problème avec le développeur Droit du web (juridique, fiscalité...) Mercredi à 14:05
Problème désindexation des pages de Google Débuter en référencement Mardi à 18:25
Problème d'indexation de pages sur Google Problèmes de référencement spécifiques à vos sites 31 Mai 2022
problème de redirection non souhaitée Administration d'un site Web 28 Avril 2022
Problème d'indexation Produits Prestashop Crawl et indexation Google, sitemaps 28 Avril 2022
Problème d'affichage des campagnes Google Ads dans un tableau de bord Data Studio AdWords 26 Avril 2022
Problème de vitesse d'affichage des pages sur Analytics Google Analytics 26 Avril 2022
Problème : Google Crawl et Index des pages en No Index et bloqué par le robot.txt Crawl et indexation Google, sitemaps 26 Avril 2022
Problème avec GA4 : nb de visiteurs temps réel et par jour Google Analytics 19 Avril 2022
Problème indexation pages précises en React.js Débuter en référencement 19 Avril 2022
Problème de référencement Demandes d'avis et de conseils sur vos sites 8 Avril 2022
Problème adsence : Annonces ne s'affichent plus AdSense 10 Mars 2022
problèmes procédures stockées Administration d'un site Web 9 Mars 2022
Problème récupération fichier vps Développement d'un site Web ou d'une appli mobile 5 Mars 2022
Problème config postfix. Administration d'un site Web 5 Mars 2022
Search Console Problème d'indexation Crawl et indexation Google, sitemaps 24 Février 2022
Problème d'url canonique Problèmes de référencement spécifiques à vos sites 22 Février 2022