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

JavaScript Discussion :

JavaScript & json => caractères accentués


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 152
    Points : 56
    Points
    56
    Par défaut JavaScript & json => caractères accentués
    Bonjour,

    Je lis un fichier JSON depuis une fonction JavaScript, mais je n'arrive pas à récupérer correctement les caractères accentués... qui sont remplacés par des "?".
    Voici ma fonction JavaScript.
    Savez vous d'où peut venir mon problème ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function addMarkers(){
      downloadUrl('<? echo $file_json ; ?>', function(data){
       var response = eval(data);
       var nombreMarq = response.markerker.length;
       for(i = 0; i < nombreMarq; i++){
    		titre = response.markerker[i].titre ;
                    alert(titre);  
       }
      });
     }

  2. #2
    Expert confirmé
    Avatar de TiranusKBX
    Homme Profil pro
    Développeur C, C++, C#, Python, PHP, HTML, JS, Laravel, Vue.js
    Inscrit en
    Avril 2013
    Messages
    1 476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur C, C++, C#, Python, PHP, HTML, JS, Laravel, Vue.js
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 1 476
    Points : 4 805
    Points
    4 805
    Billets dans le blog
    6
    Par défaut
    le problème vient de l'encodage du fichier et de ce que comprend le navigateur comme encodage fichier
    il vous faudrait donc me donner plus de détail sur les condition de vôtre déploient pour vous aider d'avantage
    Rien, je n'ai plus rien de pertinent à ajouter

  3. #3
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    il te faut spécifier l'encodage dans la page du navigateur
    dans le header du flux json

    sinon c'est le hasard qui décide
    A+JYT

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 634
    Points : 66 650
    Points
    66 650
    Billets dans le blog
    1
    Par défaut
    un petit topo de note ami Cahnory sur l'utf8
    http://cahnory.tumblr.com/post/17108...ment-ca-marche
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 939
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 939
    Points : 44 112
    Points
    44 112
    Par défaut
    Bonjour,
    il existe également Passez à l'UTF-8 sans manquer une étape

  6. #6
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 093
    Points : 6 754
    Points
    6 754
    Par défaut
    Ma réponse vient compléter les liens qui ont été donnés.

    Pour moi il y a deux cas de figures faciles à identifier :
    • On voit des points d'interrogation
    • On voit des séquences de deux caractères incohérents ou plus, par exemple é

    On est dans le premier cas. Cela signifie que le côté client cherche à interpréter le fichier comme utf-8, alors qu'il est envoyé par le serveur avec un autre encodage.

    JavaScript ne connaît que l'utf-8. Tout ce qui arrive via Ajax est interprété comme utf-8. Pour arriver à faire interpréter le fichier avec un autre encodage, c'est très compliqué car il faut traiter le flux binaire venant du serveur (déjà juste ça c'est pas complètement évident) et le convertir « à la main » avec l'algorithme correspondant à l'encodage voulu. Il y a certainement des bibliothèques JS capables de faire ça, mais ça sera de toute façon moins efficace que recevoir de l'utf-8 directement.

    Mon conseil donc : arrange-toi pour que ton serveur envoie le fichier JSON en utf-8 et tout ira bien Cela implique notamment que le fichier JSON doit être écrit en utf-8.
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 152
    Points : 56
    Points
    56
    Par défaut
    Bonjour

    Merci à tous pour vos éléments de réponse.

    J'ai essayé de rajouter la ligne suivante dans le fichier .PHP qui appelle le fichier .JSON.
    Mais c'est pire ! ... tous les caractère accentués de la page s'affichent à présent dans le navigateur avec des caractères spéciaux.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />


    il te faut spécifier l'encodage dans la page du navigateur dans le header du flux json
    Quand vous parlez du flux json, vous êtes à quel niveau ?
    - Dans le fichier json ?
    - Dans le fichier appelant le fichier json ?


    Merci encore à vous pour votre aide.

  8. #8
    Expert éminent
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    j'imagine que ton php produi le flux JSON à un moment où un autre

    il faut que ce php là envoie la réponse en utf-8 et qu'il l'indique dans le header de la réponse.

    A+JYT

  9. #9
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 634
    Points : 66 650
    Points
    66 650
    Billets dans le blog
    1
    Par défaut
    le fichier lui même doit également de préférence être en utf8 ...
    Regarde au nouveau de ton EDI dans les propriétés du fichier > encodage
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

Discussions similaires

  1. AJAX + JSON: caractères accentués renvoyant "null"
    Par t3__rrY dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 31/08/2014, 17h23
  2. Caractères accentués suite à l'appel d'un fichier javascript externe
    Par tom6821 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 24/10/2013, 16h17
  3. Réponses: 2
    Dernier message: 09/10/2009, 10h42
  4. [PostgreSQL] Les caractères accentués ?
    Par yacomor dans le forum Requêtes
    Réponses: 2
    Dernier message: 18/02/2003, 17h30
  5. insérer des caractères accentués INFORMIX/JDBC
    Par donde dans le forum Informix
    Réponses: 2
    Dernier message: 19/11/2002, 21h02

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