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 :

JSON accent php


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    338
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 338
    Points : 192
    Points
    192
    Par défaut JSON accent php
    Bonjour,

    J'ai un soucis avec mais accent.
    Ma bdd est en uft8-general-ci.
    J'ai vue sur internet que json n'aimait pas les accents donc je me suis servi du uft8_encode mais tout les données que je récupéré avec un accent sont remplacé par null.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    mysql_connect("localhost","","");
    	  mysql_select_db("fiche");
     
    	  $sql=mysql_query("SELECT * FROM fiche");
     
    		 while($row=mysql_fetch_assoc($sql))
    	  $output[]=$row;
     
    	  print (utf8_encode(json_encode($output)));//pb accent
    	 	 mysql_close();
    Voici un extrait ce que j'obtiens :
    {"ID_fiche":"22","LIBELLE_fiche":null,"ID_vol":"4"};

    normalement je devrais avoir :
    {"ID_fiche":"22","LIBELLE_fiche":acheté,"ID_vol":"4"};

  2. #2
    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 637
    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 637
    Points : 66 656
    Points
    66 656
    Billets dans le blog
    1
    Par défaut
    si ta base est en utf8 , pas besoin de encode ...

    un lien utile
    http://j-willette.developpez.com/tut...-site-en-utf8/

    ton fichier php lui aussi doit être en utf8 colle lui un header charset utf8
    as tu un setnames sur ta connexion ?
    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 !

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Déjà, rien à voir avec JavaScript... => déplacé.

    si ta base est en utf8 , pas besoin de encode ...
    Non seulement il n'y a pas besoin d'utf8_encode, mais surtout, c'est une erreur de l'utiliser sur une chaine déjà en utf8 puisque la fonction considère la chaine d'entrée comme de l'iso-8859-1 !
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    338
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 338
    Points : 192
    Points
    192
    Par défaut
    j'ai rajouté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_set_charset( 'utf8' );
    maintenant le résultat est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {"ID_fiche":"22","LIBELLE_fiche":achet\u00e9,"ID_vol":"4"};
    J'ai lu que que l'on pouvais convertir \u00e9 en é. Il n'y a pas un autre moyen ?

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    338
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 338
    Points : 192
    Points
    192
    Par défaut
    j'ai rajouté aussi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header( 'content-type: text/html; charset=utf-8' );

  6. #6
    Membre actif
    Homme Profil pro
    Inscrit en
    Décembre 2004
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 174
    Points : 241
    Points
    241
    Par défaut
    Mets ta base en iso-8859, ce sera beaucoup mieux, et facile pour tout !
    NginX, SphinxSearch Addict !!

  7. #7
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par lenono
    Mets ta base en iso-8859, ce sera beaucoup mieux, et facile pour tout !
    Hein...

    Tu pourrais expliciter ?
    Parce que je ne vois pas en quoi passer sa base en iso peut apporter un plus.
    L'important c'est l'homogénéité entre les encodages de la base, des fichiers, des en-têtes du serveur.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  8. #8
    Membre actif
    Homme Profil pro
    Inscrit en
    Décembre 2004
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 174
    Points : 241
    Points
    241
    Par défaut
    'Scuse, trop rapide dans ma réponse
    Je fuis l'UTF-8 qui, à mon gout je le précise, et une barrière affreuse à l'usage de notre langue !!!
    interclassement : latin1_general_ci

    Ce sera mieux...
    NginX, SphinxSearch Addict !!

  9. #9
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par lenono Voir le message
    'Scuse, trop rapide dans ma réponse
    Je fuis l'UTF-8 qui, à mon gout je le précise, et une barrière affreuse à l'usage de notre langue !!!
    interclassement : latin1_general_ci

    Ce sera mieux...
    l'utf-8 comporte tous les caractères du latin1_general_ci ... y'a aucun avantage à utiliser du latin1

  10. #10
    Membre actif
    Homme Profil pro
    Inscrit en
    Décembre 2004
    Messages
    174
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 174
    Points : 241
    Points
    241
    Par défaut
    Euh... sqlpro, c'est par où déjà
    NginX, SphinxSearch Addict !!

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    338
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 338
    Points : 192
    Points
    192
    Par défaut
    D'après les site internet les caractères \u00e9 sont tout a fais normal. Pour moi mon application retranscrit les accents.

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2009
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    quel fut la solution finalement ?

    Je viens d'essayer les méthodes expliquées ici:

    http://j-willette.developpez.com/tut...-site-en-utf8/

    J'ai ajouté :

    1-
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header( 'content-type: text/html; charset=utf-8' );
    dans mon fichier

    2-
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_set_charset( 'utf8' );
    à la suite de ma connexion à ma bdd

    3- j'ai changé l'interclassement de la colonne de ma bdd en utf8

    Mais j'ai toujours un null qui est renvoyé avec JSON

    Quelqu'un à la solution ?

    Merci

  13. #13
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2009
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    Bon j'ai repris toutes mes pages, j'ai recommencé ce que j'ai fais plus haut et je ne sais pas pourquoi, mais maintenant ca fonctionne...

    Désolé du post...

  14. #14
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    338
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 338
    Points : 192
    Points
    192
    Par défaut
    Tu as essayé avec Notepad++ : Aller dans Format > Encoder en UTF-8 (sans BOM). ?

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

Discussions similaires

  1. JSON, accent, mysql et php (webservice)
    Par lilsgabbg dans le forum Langage
    Réponses: 1
    Dernier message: 19/07/2012, 14h06
  2. [AJAX] Ajax et Json - création d'un .json par PHP
    Par versus68 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 06/06/2008, 17h18
  3. Création de fichier json avec PHP
    Par versus68 dans le forum Langage
    Réponses: 1
    Dernier message: 02/06/2008, 11h56
  4. accent php formatage bizarre pas si simple !
    Par iris15 dans le forum Langage
    Réponses: 2
    Dernier message: 22/04/2008, 11h55
  5. [MySQL] Problème Accent PHP + MySQL
    Par ganjaaw dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 08/08/2007, 22h10

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