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_encode json_decode et les accents


Sujet :

Langage PHP

  1. #1
    Membre éclairé Avatar de monlou
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2010
    Messages : 363
    Par défaut json_encode json_decode et les accents
    Bonjour,

    j'utilise json_encode pour entrer une variable tableau dans une colonne de ma table mysql, ensuite et je les décode sur une autre page avec json_decode pour une manipulation dans une boucle.

    j'ai lu que ces fonctions sont plus souples en encodage utf8

    cependant les valeurs string de chacune des variables ont perdu leurs accents et les textes sont déformés lorsque qu'ils sont accentués mais ceux qui ne sont pas accentués sont ok.

    J'utilise une table en utf8 general_ci

    je mets en haut de page php


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

    de plus je mets cette fonction dans mon fichier de connexion a la base de donnée mysql

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <?php
    function connect() {
    		$mysql_connect = mysql_connect(HOST_NAME, USER, PASSWORD);
    		mysql_select_db(DATABASE, $mysql_connect);
    		mysql_set_charset( 'utf8' );
     
    		mysql_query("SET character_set_results = 'utf8',
                       character_set_client = 'utf8',
                       character_set_connection = 'utf8',
                       character_set_database = 'utf8',
                       character_set_server = 'utf8'");          
    		}
      ?>


    mon editeur est encoder en utf8

    ma version de php 5.3.4

    mais le probleme est que les chaines contenants des accents ne sont pas décoder et restent coder quand j'utilise json_decode

    j'ai essayé aussi de mettre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $tableau = utf8_encode($tableau);
    avant d'encoder ma variable avec json_encode
    cependant j'obtiens cette erreur:

    Warning: utf8_encode() expects parameter 1 to be string, array given in C:\wamp\

    quelqu'un connait-il le probleme ?
    merci

  2. #2
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Bonjour,

    pour faire du json il faut que les données soit codées en utf8, regardes le manuel php ici

    pour ton erreur
    Warning: utf8_encode() expects parameter 1 to be string, array given
    Si tu traduis, c'est que cette fonction prend un 'string' comme paramètre et pas un tableau ... regardes cette fonction dans le même manuel

  3. #3
    Membre éclairé Avatar de monlou
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2010
    Messages : 363
    Par défaut
    merci French pour ta réponse, cependant

    pour faire du json il faut que les données soit codées en utf8, regardes le manuel php ici
    je comprends bien tout ca et j'ai déja été voir le manuel plusieurs fois

    mais avec tout ce que j'ai mis en haut concernant utf8 pour mon script
    que me faut-il de plus pour que mes variables soit coder en utf8 ?

  4. #4
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    En fait, ce que je voulais dire, c'est que ton erreur était de vouloir encoder un tableau en utf8 alors que cette fonction utf8_encode prend comme paramètre une chaîne de caractères. Il faudrait boucler sur chaque élément du tableau.

    Mais n'étant pas un expert de l'encodage, tu devrais regarder peut être sur l'encodage et ses principes (ya beaucoup là dessus et de quoi s'embrouiller aussi) bon courage

Discussions similaires

  1. [FoxPro]Instruction pour enlever les accents ?
    Par Fab-FoxPro dans le forum Autres SGBD
    Réponses: 3
    Dernier message: 02/01/2025, 15h09
  2. [String] Comment supprimer les accents
    Par iuz dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 08/03/2004, 02h58
  3. [JDBC] Problème avec les accents
    Par seawolfm dans le forum Administration
    Réponses: 2
    Dernier message: 29/01/2004, 14h56
  4. les accents et printf
    Par remi77 dans le forum C
    Réponses: 5
    Dernier message: 07/07/2003, 20h53
  5. Comment afficher les accent sous mysql v4.0.13
    Par buildozer dans le forum Requêtes
    Réponses: 2
    Dernier message: 17/06/2003, 09h33

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