Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 05-02-2010 19:11:45

elec
Membre
Date d'inscription: 16-10-2009
Messages: 118

[Zend_Json][1.9.6]Probème d'encodage avec Doctrine

Bonsoir,

j'ai un sérieux problème  avec Doctrine et Zend_Json.Je crée ma base de donnée normale et j'utilise Doctrine pour récupérer mes donnée puis Zend_Json pour l'encoder de cette façon :

AsyncController.php :

Code:

public function getjsonAction()
{
        $user= Doctrine_Query::create()
        ->select('c.musee_name')
        ->from('Art c')
        ->where('c.id=1')
        ->fetchArray();

        
        $json = json_encode($user);

        $this->view->json=$json;
}

Alors dans le nom de musée j'ai par exemple "musée d'orsay" ,et après l'appelle de la page getjson.phtml,il m'affiche cela :

Code:

[{"id":"1","musee_name":null}]

et quand je change "è" par son code ASCII() dans la base de donnée,il m'affiche cela:

Code:

[{"id":"1","musee_name":"Musèe d'orsay"}]

Alors le probème directement à cause de l'encodage,j'ai changé l'encodage de la page "phtml" en "UTF8",mais cela ne change rien,je résume la cause dans la requête Doctrine puis l'encodage Zend_Json ou même dans Phpmyadmin(Wamp). J'attend vos réponses...

Merci.Nll

Dernière modification par elec (05-02-2010 19:15:22)

Hors ligne

 

#2 08-02-2010 14:00:17

elec
Membre
Date d'inscription: 16-10-2009
Messages: 118

Re: [Zend_Json][1.9.6]Probème d'encodage avec Doctrine

Bonjour,

Je ne sais plus pourquoi à chaque fois en cherchant une solution sur le forum pour un sérieux problème on attendra deux semaines sans même une phrase d'un administrateur ici!Voyant que nous avons presque un seul forum pour Zend alors j'ai posé ma discussion depuis vendredi sans même une réponse d'un membre ou un administrateur pour la classer comme un problème sans solution ici.

De ma part j'aime poster des réponses pour évoluer ce forum pour qu'il soit plus actif. Je remarque qu'on doit attendre plus que temps nécessaire par rapport aux autres forums ,personnellement ça fais pas mal du temps que je travaille avec Zend et j'étais un jour débutant  alors quand je vois un nouveau membre sur le forum je le passe un bon chemin vers la solution avec des tutoriels et des sites utiles au lieu de lui passer une réponse plus difficile pour la comprendre que le problème lui-même.

Je m'excuse pour ma façon mais c'est juste des remarques juste,enfin on veux voir ce forum comme les autres forums .

A+.Nll

Hors ligne

 

#3 08-02-2010 14:08:24

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: [Zend_Json][1.9.6]Probème d'encodage avec Doctrine

Pauvre choux..


Vérifie l'encodage de ta base de donnée, vérifie la manière dont tu importes ta bases de donnée
Vérifie l'encodage de ton code
Vérifie tes entêtes HTTP et HTML
N'hésite pas utiliser l'encodage de ton navigateur pour voir ou sa coince.

J'utilise Doctrine, JSON et je n'ai pas de problèmes


----
Gruiiik !

Hors ligne

 

#4 08-02-2010 15:29:20

elec
Membre
Date d'inscription: 16-10-2009
Messages: 118

Re: [Zend_Json][1.9.6]Probème d'encodage avec Doctrine

Bonjour,merci Norky pour la réponse et pauvre choux aussi smile ,bon tu as raison et j'ai testé la plupart des cas cités dans ton message,effectivement j'ai vérifié les entêtes HTML et HTTP,j'ai changé aussi l'encodage de la base de donnée de ma table vers UTF8 ainsi l'encodage de mon navigateur mais cela ne marche plus,j'ai aussi  tiré une requête de la même table avec une caractère accentué et je l'ai affiché dans la même page "phtml" et cela marche bien alors surement le problème viens de la base de donnée ou d'encodage JSON,juste deux questions pour toi :

Comment je peux vérifier la manière dont j'importe ma base de donnée?

Comment je peux vérifier l'encodage de mon code?

A+.Nll

Dernière modification par elec (08-02-2010 15:30:36)

Hors ligne

 

#5 08-02-2010 15:39:21

3uclide
Membre
Date d'inscription: 09-08-2008
Messages: 194

Re: [Zend_Json][1.9.6]Probème d'encodage avec Doctrine

Code:

Comment je peux vérifier l'encodage de mon code?

Notepad++, eclipse...

Hors ligne

 

#6 08-02-2010 16:13:57

elec
Membre
Date d'inscription: 16-10-2009
Messages: 118

Re: [Zend_Json][1.9.6]Probème d'encodage avec Doctrine

Ah oui,je suis désolé je n'ai pas compris au début,oui j'avais testé avec notpad++ de changer l'encodage mais toujours j'ai le même problème...

A+Nll

Hors ligne

 

#7 08-02-2010 16:16:04

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: [Zend_Json][1.9.6]Probème d'encodage avec Doctrine

Si tu utilises le YAML avec Doctrine :
Au début de ton fichier :

Code:

---
options:
  collate: utf8_unicode_ci
  charset: utf8

Et biensur, vérifie l'encodage dans data.yml

Dernière modification par nORKy (08-02-2010 16:16:32)


----
Gruiiik !

Hors ligne

 

#8 08-02-2010 16:28:28

elec
Membre
Date d'inscription: 16-10-2009
Messages: 118

Re: [Zend_Json][1.9.6]Probème d'encodage avec Doctrine

Bon aussi j'ai changé l'encodage de mes deux fichiers YAML et j'ai mis le code que tu m'as passé au début de ces derniers mais toujours me renvoie "null" et au même temps  une requête simple s'affiche correctement cela ne change rien.

Maintenant la base de donnée et tout les fichiers et le navigateur tout en UTF8.Vraiment cela me rend fou...

A+.Nll

Dernière modification par elec (08-02-2010 16:29:51)

Hors ligne

 

#9 10-02-2010 10:52:17

elec
Membre
Date d'inscription: 16-10-2009
Messages: 118

Re: [Zend_Json][1.9.6]Probème d'encodage avec Doctrine

Bonjour,

Enfin j'ai arrivé à résoudre mon problème et je crois que ça sera très utile pour des gens ici.Après que j'ai mis tout les fichiers en UTF8 et cela n'as rien changé,j'ai essayé à nouveau en cherchant sur le net et j'ai trouvé "utf8_encode" mais malgré l'insertion de celle ci après l'encodage JSON cette fonction m'as semblé inutile,car j'ai eu une nouvelle erreur c'est que au lieu de me retourner "null"  alors il me renvoie la phrase mais la caractère accentué en code ASCII encore,bon je résume comment j'ai résolu le problème :

1- Utiliser utf8_encode après la converstion JSON.

2- Changer la classe "Json.php" et le dosseier "Json" de la laibrairie Zend par la version ancienne 1.7 au lieu de 1.9(ma version).

3- Modifier la ligne 54  dans la classe "Json.php" : "public static $useBuiltinEncoderDecoder = false"; en mettant "true" au lieu de "false".

Merci pour vos résponses.

A+.Nll

Dernière modification par elec (10-02-2010 10:53:43)

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages