Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 09-03-2009 18:02:49

lermit
Nouveau membre
Date d'inscription: 18-12-2008
Messages: 6

[Zend_Db][1.6]Erreur d'encodage

Bonjour à tous,

Je suis actuellement en plein développement d'un site internet pour lequel j'utilise PostgreSQL en base de données.
J'essaie donc d'ajouter dans entrées à ma table comme ceci :

Code:

                $newBug = $tableBuglist->createRow();
                
                // ....

                // Champs
                $newBug->deposed_at = time();
                $newBug->subject = $form->getValue('subject');
                $newBug->description = $form->getValue('description');
                $newBug->state_id = 1;
                $newBug->category_id = $form->getValue('category_id');
                
                // Sauver
                $newBug->save();

Tout fonctionne bien quand je n'utilise pas de caractères spéciaux mais dès que j'utilise des accents, par exemple, ZF me retourne cette erreur :

Code:

Fatal error: Uncaught exception 'Zend_Db_Statement_Exception' with message 'SQLSTATE[22021]: Character not in repertoire: 7 ERREUR: séquence d'octets invalide pour l'encodage « UTF8 » : 0xe92027 HINT: Cette erreur peut aussi survenir si la séquence d'octets ne correspond pas au jeu de caractères attendu par le serveur, le jeu étant contrôlé par « client_encoding ».' in /usr/share/ZendFramework/Zend/Db/Statement/Pdo.php:238 Stack trace: #0 /usr/share/ZendFramework/Zend/Db/Statement.php(283): Zend_Db_Statement_Pdo->_execute(Array) #1 /usr/share/ZendFramework/Zend/Db/Adapter/Abstract.php(430): Zend_Db_Statement->execute(Array) #2 /usr/share/ZendFramework/Zend/Db/Adapter/Pdo/Abstract.php(220): Zend_Db_Adapter_Abstract->query('INSERT INTO "bu...', Array) #3 /usr/share/ZendFramework/Zend/Db/Adapter/Abstract.php(508): Zend_Db_Adapter_Pdo_Abstract->query('INSERT INTO "bu...', Array) #4 /usr/share/ZendFramework/Zend/Db/Table/Abstract.php(815): Zend_Db_Adapter_Abstract->insert('bugtracker_list', Array) #5 /usr/share/Zen in /usr/share/ZendFramework/Zend/Db/Statement/Pdo.php on line 238

J'ai vérifié l'encodage de mes fichiers et de mon serveur tout est en UTF 8.

Je suis donc perdu ... j'espère que vous pourrez m'aider !!

Merci d'avance.

Lermit

Dernière modification par lermit (09-03-2009 18:07:49)

Hors ligne

 

#2 10-03-2009 17:16:33

neni
Membre
Lieu: Nantes
Date d'inscription: 12-11-2007
Messages: 27

Re: [Zend_Db][1.6]Erreur d'encodage

Je n'utilise pas PostgreSQL, mais pour MySQL. Pour ne pas avoir de soucis, il faut mettre:
$db->query("SET NAMES 'utf8'");
où $db est la base de données (je le fais dès l'initialisation de la BDD).
C'est peut-être la même chose avec PostgreSQL...

Dernière modification par neni (10-03-2009 17:16:56)

Hors ligne

 

#3 10-03-2009 17:56:00

lermit
Nouveau membre
Date d'inscription: 18-12-2008
Messages: 6

Re: [Zend_Db][1.6]Erreur d'encodage

Bonjour neni,

Tout d'abord merci pour ta réponse !!!

J'ai, comme proposé, essayé de spécifier l'encodage client mais ceci ne change rien.

Merci quand même pour la réponse et si quelqu'un à une autre solution je suis preneur, je continu les recherches de mon côté et si j'ai des éléments de réponse je vous en ferait part wink !!

Hors ligne

 

#4 10-03-2009 20:08:57

neni
Membre
Lieu: Nantes
Date d'inscription: 12-11-2007
Messages: 27

Re: [Zend_Db][1.6]Erreur d'encodage

J'ai regardé sur le net ce que je trouvais là dessus car j'aurai certainement le même soucis un jour...

Il y a bien cela qui pourrait donner une piste (ou temporairement dépanner):
http://www.developpez.net/forums/d61100 … e-serveur/

ou essayer cela:
pg_set_client_encoding( $database_connection, 'UTF8' );
ou en requete
SET CLIENT_ENCODING TO 'UTF8';

Dernière modification par neni (11-03-2009 08:15:49)

Hors ligne

 

#5 11-03-2009 10:26:39

mikaelkael
Administrateur
Lieu: Donges
Date d'inscription: 18-06-2007
Messages: 1176
Site web

Re: [Zend_Db][1.6]Erreur d'encodage

Hello,

L'une des plus vieilles issues de l'IT : http://framework.zend.com/issues/browse/ZF-1541

Sur le papier, c'est normalement corrigé pour la 1.8.

A+


Less code = less bugs
Contributeur ZF - ZCE - ZFCE - Doc ZF (CHM & PDF) - Vice-trésorier AFUP 2011
Ubuntu 11.04 - ZendServer

Hors ligne

 

#6 12-03-2009 12:00:35

lermit
Nouveau membre
Date d'inscription: 18-12-2008
Messages: 6

Re: [Zend_Db][1.6]Erreur d'encodage

Bonjour à tous,

j'ai regarder tout vos liens qui sont très intéressants et j'avance.

En effet j'ai appliqué le patch proposé par Zend mais ceci n'as rien changé mais en creusant un peu j'ai découvert une quelque chose :
Les fichier du ZF sont encodés en 'us-ascii'.
Je vais donc essayer de convertir tout ça en UTF 8 et reviendrai vous donnez des nouvelles wink

Merci à tous pour vos réponses.

Romain

[Edit]

J'ai réussis à ajouter mes accents en utilisant la fonction utf8_encode de php mais quand je les affiche j'ai un magnifique é. Si quelqu'un sais pourquoi ?

Dernière modification par lermit (12-03-2009 14:06:00)

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