Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 15-04-2009 11:50:39

docaze21
Membre
Date d'inscription: 19-03-2009
Messages: 23

[Résolu] Problème Affichage Encodage UTF-8 [ZF 1.6]

Bonjour,

Je rencontre un problème.
En effet quand j'essaye d'afficher des chaines extraites de ma bdd alors celle ci est mal encodée.

Pourtant :
- ma base de donnée est en utf8_general_ci
- mes tables sont en utf8_general_ci
- mes champs sont en utf8_general_ci
- Dans mon config j'ai "db.params.charset = utf8"
- et dans mon layout j 'ai bien "<?php echo $this->headMeta('text/html; charset=UTF-8', 'content_type', 'http-equiv'); ?>"


Exemple de mon problème :
Au lieu de m'afficher :

Code:

Paramètrage système

sur ma page j'ai

Code:

Param�trage syst�me

Avez vous une idée de la raison de ce soucis d'affichage ?

Merci d'avance.


Modif : En revanche je tiens à signaler que les autres accents qui proviennent de chaines php (écrite en dur dans le code) sont biens affichés.

Dernière modification par docaze21 (17-04-2009 16:36:16)

Hors ligne

 

#2 15-04-2009 12:05:05

ziedb
Membre
Lieu: Tunis
Date d'inscription: 24-03-2008
Messages: 224

Re: [Résolu] Problème Affichage Encodage UTF-8 [ZF 1.6]

J'ai eu le même problème. Utilise utf8_decode() dans ta vue pour les données récupérées depuis la bd.

Hors ligne

 

#3 15-04-2009 13:58:00

docaze21
Membre
Date d'inscription: 19-03-2009
Messages: 23

Re: [Résolu] Problème Affichage Encodage UTF-8 [ZF 1.6]

Euh je me vois mal faire un utf_ENcode sur toutes mes variables (extraites de la bdd) de ma vue.

Il doit surement y avoir une solution plus "propre".

Merci.

Hors ligne

 

#4 15-04-2009 14:32:40

docaze21
Membre
Date d'inscription: 19-03-2009
Messages: 23

Re: [Résolu] Problème Affichage Encodage UTF-8 [ZF 1.6]

Bien sur je précise que tous mes scripts de mon projet sont encodés en UTF8

Hors ligne

 

#5 15-04-2009 16:11:40

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: [Résolu] Problème Affichage Encodage UTF-8 [ZF 1.6]

dans ta config apache, tu as bien dans ton virtual host ?

Code:

DefaultCharset UTF-8

A+, Philippe


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

#6 15-04-2009 16:25:21

docaze21
Membre
Date d'inscription: 19-03-2009
Messages: 23

Re: [Résolu] Problème Affichage Encodage UTF-8 [ZF 1.6]

Voila ce que j ai pour mon virtual host :

Code:

<VirtualHost *:80>
    DocumentRoot "C:/wamp/www/cms/trunk/public"
    ServerName cms.localhost
    AddDefaultCharset utf-8
</VirtualHost>

http://httpd.apache.org/docs/2.0/mod/core.html#adddefaultcharset



Mais ce n'a rien changé.
J'ai pourtant bien redémarré les services.

Dernière modification par docaze21 (15-04-2009 16:26:16)

Hors ligne

 

#7 15-04-2009 16:52:01

gostbuster
Membre
Date d'inscription: 11-03-2009
Messages: 160

Re: [Résolu] Problème Affichage Encodage UTF-8 [ZF 1.6]

Au risque de dire des bétises, j'ai eu le même problème, et je crois que c'etait parce que j'avais oublié le doctype.

Je te montre le début de mon layout :

Code:

 <?php 
echo $this->doctype();
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>

<?php  echo $this->headMeta()
->setHttpEquiv('Content-type', 'text/html; charset=utf-8')

en esperant que ca t'aide


Gostbuster - Développeur WEB

Hors ligne

 

#8 15-04-2009 16:57:26

docaze21
Membre
Date d'inscription: 19-03-2009
Messages: 23

Re: [Résolu] Problème Affichage Encodage UTF-8 [ZF 1.6]

Cela n'a rien changé,

Pourtant le code de mon layer est maintenant  :

Code:

<?php echo $this->doctype();?>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
    <?php echo $this->headMeta()->setHttpEquiv('Content-type', 'text/html; charset=utf-8')?>
</head>

C'est plutôt embêtant. Et a force de chercher je commence par être désespéré. hmm

Help me ! Merci

Hors ligne

 

#9 15-04-2009 19:49:22

ziedb
Membre
Lieu: Tunis
Date d'inscription: 24-03-2008
Messages: 224

Re: [Résolu] Problème Affichage Encodage UTF-8 [ZF 1.6]

C'est utf8_DEcode()  et non utf8_ENcode()

Hors ligne

 

#10 16-04-2009 08:47:15

docaze21
Membre
Date d'inscription: 19-03-2009
Messages: 23

Re: [Résolu] Problème Affichage Encodage UTF-8 [ZF 1.6]

Cette solution ne résous pas mon problème.

En effet elle decode seulement les variables qui ne viennent pas de la bdd.
Les variables qui proviennent de la bdd sont donc toujours mal encodées.

Je pense plutôt que c est une configuration à faire au niveau du connecteur mais je ne vois pas lequel...

Surtout que j'ai un projet quasi identique avec tout encoder de la même manière et cela marche sans soucis.

Une idée ?

Hors ligne

 

#11 16-04-2009 09:30:23

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: [Résolu] Problème Affichage Encodage UTF-8 [ZF 1.6]

@ziedb : le but est de travailler entièrement en UTF-8, donc normalement pas besoin de utf8_decode et pas besoin de conversion de type.

@docaze21 : je commence à avoir un doute sur ta conf db.params.charset = utf8
Essaye de lancer la requête :

Code:

SET NAMES 'utf8';

avant ta 1ère requête SQL. Cette requête indique à Mysql que dans la connexion courante avec PHP, la base doit papoter en UTF8. (je pensais que ton db.params.charset servait à ça, mais peut-être pas, j'en sais rien).

A+, Philippe


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

#12 16-04-2009 09:43:36

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

Re: [Résolu] Problème Affichage Encodage UTF-8 [ZF 1.6]

Hello,

Le connecteur ne gère pas encore le charset via les paramètres (ZF-1541) et ce n'est pas sûr que ce soit implémenter pour la 1.8.
Il faut forcer la première requête comme le propose Philippe. J'ai étendu Zend_Db_Adapter_Mysqli en Mp_Db_Adapter_Mysqli pour ajouter la commande en fin de méthode _connect(), ensuite il faut modifier tes paramètres de connexion et ajouter un 'adapterNamespace = Mp_Db_Adapter'.

A+


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

Hors ligne

 

#13 16-04-2009 10:00:59

docaze21
Membre
Date d'inscription: 19-03-2009
Messages: 23

Re: [Résolu] Problème Affichage Encodage UTF-8 [ZF 1.6]

Effectivement,

J'ai trouvé une methode qui me convient bien : http://www.zfsnippets.com/snippets/view/id/13 .

En revanche plutot que de faire :

Code:

$pdoParams = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8;');
$params = array(
    'host' => $config->db->params->host,
    'username' => $config->db->params->username,
    'password' => $config->db->params->password,
    'dbname' => $config->db->params->dbname,
    'driver_options' => $pdoParams
);
$adapter = $config->db->adapter;
$db = Zend_Db::factory($adapter, $params);

J'aimerai pouvoir directement mettre mon paramètre driver_options dans mon config.
Mais je ne vois pas comment faire ...

Voila ce que j 'aimerais faire :

Code:

db.adapter = PDO_MYSQL
db.params.host = localhost
db.params.username = root
db.params.password = 
db.params.dbname = test
db.params.driver_options = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8;');

Bien sur ce code est faux, mais c'est simplement l'idée de ce que j aimerais faire.
Cela est il possible ?

Hors ligne

 

#14 16-04-2009 10:23:52

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

Re: [Résolu] Problème Affichage Encodage UTF-8 [ZF 1.6]

Hello,

C'est ce que doit résoudre ZF-1541 (enfin en théorie).

A+


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

Hors ligne

 

#15 16-04-2009 10:33:29

docaze21
Membre
Date d'inscription: 19-03-2009
Messages: 23

Re: [Résolu] Problème Affichage Encodage UTF-8 [ZF 1.6]

Donc ca veut dire pas de solution pour mettre cette ligne dans le config ?

Hors ligne

 

#16 16-04-2009 10:57:20

alien7
Membre
Date d'inscription: 29-04-2007
Messages: 447

Re: [Résolu] Problème Affichage Encodage UTF-8 [ZF 1.6]

As tu accès à la conf de mysql ?
Si oui ajoute ça à my.cnf :

Code:

[mysqld]
....
....
character-set-server=utf8
skip-character-set-client-handshake

ZF 2.3 - Twitter Bootstrap 3.2
Local: Ubuntu  -> Apache2 2.4 - MariaDB 10 - PHP 5.6

Hors ligne

 

#17 16-04-2009 11:06:37

docaze21
Membre
Date d'inscription: 19-03-2009
Messages: 23

Re: [Résolu] Problème Affichage Encodage UTF-8 [ZF 1.6]

alien7 a écrit:

As tu accès à la conf de mysql ?
Si oui ajoute ça à my.cnf :

Code:

[mysqld]
....
....
character-set-server=utf8
skip-character-set-client-handshake

Ta solution ne me convient pas car d'autres projets utilisent ce serveur mysql et ils marchent très bien.
Merci quand même.

Il faudrait maintenant simplement trouver une solution pour mettre "db.params.driver_options = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8;');" dans le config.

Hors ligne

 

#18 17-04-2009 13:03:22

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

Re: [Résolu] Problème Affichage Encodage UTF-8 [ZF 1.6]

Hello,

ZF-1541 est résolu depuis ce matin et sera donc disponible pour la prochaine release 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

 

#19 13-05-2009 10:05:05

fatahou
Membre
Lieu: La Rochelle - France
Date d'inscription: 23-04-2009
Messages: 31

Re: [Résolu] Problème Affichage Encodage UTF-8 [ZF 1.6]

J'ai le même problème que docaze21 mais avec un projet utilisant MSSQL. quel est l'equivalent pour le "set names utf8" dans MSSQL? Il y a t'il un moyen d'avoir une solution indépendante du langage SQL propre à chaque SGBD?

Merci pour vos réponse.

Fatahou

Dernière modification par fatahou (13-05-2009 10:07:28)

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