Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/12/2011, 12h21   #1
Membre régulier
 
Inscription : janvier 2011
Messages : 283
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 283
Points : 96
Points : 96
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 :
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"};
xouzi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2011, 12h34   #2
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 071
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

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

Informations forums :
Inscription : mars 2002
Messages : 30 071
Points : 45 202
Points : 45 202
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
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


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2011, 12h41   #3
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 808
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

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

Informations forums :
Inscription : juin 2008
Messages : 13 808
Points : 35 789
Points : 35 789
Déjà, rien à voir avec JavaScript... => déplacé.

Citation:
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 !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, 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
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2011, 12h48   #4
Membre régulier
 
Inscription : janvier 2011
Messages : 283
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 283
Points : 96
Points : 96
j'ai rajouté :
Code :
mysql_set_charset( 'utf8' );
maintenant le résultat est :
Code :
{"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 ?
xouzi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2011, 12h51   #5
Membre régulier
 
Inscription : janvier 2011
Messages : 283
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 283
Points : 96
Points : 96
j'ai rajouté aussi :
Code :
header( 'content-type: text/html; charset=utf-8' );
xouzi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2011, 20h18   #6
Membre confirmé
 
Homme Arnaud
Inscription : décembre 2004
Messages : 167
Détails du profil
Informations personnelles :
Nom : Homme Arnaud
Âge : 40
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : décembre 2004
Messages : 167
Points : 238
Points : 238
Mets ta base en iso-8859, ce sera beaucoup mieux, et facile pour tout !
__________________
NginX, SphinxSearch Addict !!
lenono est déconnecté   Envoyer un message privé Réponse avec citation 02
Vieux 06/12/2011, 20h36   #7
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 808
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

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

Informations forums :
Inscription : juin 2008
Messages : 13 808
Points : 35 789
Points : 35 789
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 !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, 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
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 06/12/2011, 20h48   #8
Membre confirmé
 
Homme Arnaud
Inscription : décembre 2004
Messages : 167
Détails du profil
Informations personnelles :
Nom : Homme Arnaud
Âge : 40
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : décembre 2004
Messages : 167
Points : 238
Points : 238
'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 !!
lenono est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 06/12/2011, 20h51   #9
Modérateur
 
Inscription : septembre 2010
Messages : 7 219
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 219
Points : 8 598
Points : 8 598
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
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 06/12/2011, 21h09   #10
Membre confirmé
 
Homme Arnaud
Inscription : décembre 2004
Messages : 167
Détails du profil
Informations personnelles :
Nom : Homme Arnaud
Âge : 40
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : décembre 2004
Messages : 167
Points : 238
Points : 238
Euh... sqlpro, c'est par où déjà
__________________
NginX, SphinxSearch Addict !!
lenono est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 07/12/2011, 12h51   #11
Membre régulier
 
Inscription : janvier 2011
Messages : 283
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 283
Points : 96
Points : 96
D'après les site internet les caractères \u00e9 sont tout a fais normal. Pour moi mon application retranscrit les accents.
xouzi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2012, 01h59   #12
Invité de passage
 
Inscription : juin 2009
Messages : 15
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 15
Points : 3
Points : 3
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 :
header( 'content-type: text/html; charset=utf-8' );
dans mon fichier

2-
Code :
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
Cryvar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2012, 06h06   #13
Invité de passage
 
Inscription : juin 2009
Messages : 15
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 15
Points : 3
Points : 3
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...
Cryvar est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2012, 22h55   #14
Membre régulier
 
Inscription : janvier 2011
Messages : 283
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 283
Points : 96
Points : 96
Tu as essayé avec Notepad++ : Aller dans Format > Encoder en UTF-8 (sans BOM). ?
xouzi est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h49.


 
 
 
 
Partenaires

Hébergement Web