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 :

PHP/Mysql/Json : problème avec accents [PHP 5.0]


Sujet :

Langage PHP

  1. #1
    Membre habitué

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 639
    Points : 167
    Points
    167
    Par défaut PHP/Mysql/Json : problème avec accents
    Bonjour,

    Je souhaite afficher le résultat encodé avec JSON d'une requête SQL mais les accents sont mal convertis.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
            mysql_connect("tomlevrai.sql.free.fr", "tomlevrai", "ansadajl");
            mysql_select_db('tomlevrai');
            mysql_query("SET NAMES UTF8"); 
     
            $libelle = 'pyrénée';
     
            $query = "SELECT libelle FROM liste_rando where libelle = '$libelle'";
    	$queryResult = mysql_query($query);
    	$row = array();
    	while($row = mysql_fetch_array($queryResult)){
                $output[]=array_map("utf8_encode", $row);
    	}
     
            $status = 200;
            $status_header = 'HTTP/1.1 ' . $status . ' ' . getStatusCodeMessage($status);
            $content_type = 'text/html; charset= UTF-8';
            header($status_header);
            header('Content-type: ' . $content_type);
            print(json_encode($output));
            mysql_close();
    Mon soucis c'est que j'obtiens :
    [{"0":"pyr\u00c3\u00a9n\u00c3\u00a9e","libelle":"pyr\u00c3\u00a9n\u00c3\u00a9e"}]
    au lieu de
    [{"0":"pyrénée","libelle":"pyrénée"}]
    Savez-vous d'où vient mon erreur?
    Merci d'avance pour vos réponses.

    PS : version php de mon serveur Free : PHP Version 5.1.3RC4-dev

  2. #2
    Membre confirmé
    Avatar de kalimukti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2011
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

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

    Informations forums :
    Inscription : Octobre 2011
    Messages : 262
    Points : 451
    Points
    451
    Par défaut
    Citation Envoyé par tomy29 Voir le message
    $content_type = 'text/html; charset= UTF-8';
    Bonjour,

    Et si tu essayes avec ce content type:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header('Content-Type: application/json');
    ça donne quoi ?
    My daughter, my laptop, my bike and my double-sticks...

  3. #3
    Membre habitué

    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 639
    Points : 167
    Points
    167
    Par défaut
    En fait j'ai trouvé une solution qui fonctionne. Il faut rajouter cette fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function jsonRemoveUnicodeSequences($struct) {
       return preg_replace("/\\\\u([a-f0-9]{4})/e", "iconv('UCS-4LE','UTF-8',pack('V', hexdec('U$1')))", json_encode($struct));
    }
    et l'appeler quand on affiche la réponse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print(jsonRemoveUnicodeSequences($output));

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

Discussions similaires

  1. [MySQL] Problème avec accent et JSON
    Par tomy29 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 05/06/2012, 19h46
  2. JSON from PHP to Silverlight problème avec les BackSlash's
    Par s.toubal dans le forum Silverlight
    Réponses: 4
    Dernier message: 16/02/2012, 14h43
  3. [MySQL] [PHP, MySQL, Javascript] Problème Variables
    Par marie4449 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 29/05/2006, 11h57
  4. Problème avec accents Interbase
    Par koolkris dans le forum Bases de données
    Réponses: 3
    Dernier message: 24/08/2005, 16h46
  5. Problème avec accents et CHARACTER SET ISO8859_1
    Par kinda dans le forum InterBase
    Réponses: 13
    Dernier message: 30/10/2003, 15h49

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