Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 09-08-2010 18:41:31

aurelien.demarest
Nouveau membre
Date d'inscription: 09-08-2010
Messages: 4

Problème encodage caractères spéciaux

Bonjour à tous,

je m'appelle Aurélien je travaille depuis peu sur un projet existant de ma société sous Zend Framework. J'apprends donc au fur et à mesure.
Le problème que j'ai est que je n'arrive pas à afficher les caractères caractères accentuées "à","è" ... extraits de ma base de données. Je dois préciser que cette procédure d'extraction de ma base Mysql 5 affiche à l'écran à l'aide du Datagrid de Zend.
Pour éviter tout soupçons je me suis fait une procédure simple d'extraction avec un "echo" pour voir si ça donnait le même résultat => IDEM. Les caractères affichés sont des "?". Je tient aussi à préciser que j'ai fait beaucoup de tentatives avant d'écrire ici en prenant soin de lire les post des gens qui ont eu des problèmes similaires. Malheureusement je ne suis pas arriver à trouver la solution. Si quelqu'un veut bien me filer un coup de main ça me serait très utile...
Je tourne sous apache 2.2, et php 5.

J'ai essayé au niveau de mon config.ini ces instructions:
resources.view.config.encoding = "UTF-8"
resources.view.meta.httpEquiv.1.content = "text/html; charset=utf-8"
resources.db.params.driver_options.1002 = "SET NAMES utf8"

Dans mon fichier layout.phml j'ai bien cette istruction-ci:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Dans mon Bootstrap.php à l'appel de la fonction _initView j'ai aussi essayé ça:
$this->headMeta()->setCharset('UTF-8');

Mes instructions d'extraction des données:
$entreprisesModel = new Default_Model_DbTable_Entreprises();
$entreprises = $entreprisesModel->fetchAll();

$html = '';
$i = 1;
foreach ($entreprises as $entreprise) {
    $html .= '<tr><td>'.$i.'</td><td>'.$entreprise->nomEntreprise.'</td></tr>';
    $i ++;
}
echo '<table>'.$html.'</table>';

=> Il m'affiche les caractères spéciaux avec "?"

Précision je n'utilise PAS mysqli.

Avec ceci c'est pareil:

$dbAdapter = Zend_Db_Table::getDefaultAdapter();
$dbAdapter->setFetchMode(Zend_Db::FETCH_OBJ);
$grid = new Bvb_Grid_Deploy_Table($dbAdapter,'Liste entreprises','/tmp);
$grid->from('entreprise');
$this->view->grid = $grid->deploy();

Merci d'avance...

Aurélien

Hors ligne

 

#2 09-08-2010 20:09:08

shadypierre
Membre
Date d'inscription: 24-03-2010
Messages: 617

Re: Problème encodage caractères spéciaux

T'es en php 5, mais php 5.0 ou php > 5.2?

Hors ligne

 

#3 10-08-2010 09:12:53

aurelien.demarest
Nouveau membre
Date d'inscription: 09-08-2010
Messages: 4

Re: Problème encodage caractères spéciaux

Salut,

La version du Php est 5.3.2, pourquoi ça peut avoir une importance?
Tu as un idée de comment faire?

Hors ligne

 

#4 10-08-2010 09:32:17

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

Re: Problème encodage caractères spéciaux

Hello,

Parce qu'il existe un bug connu avec pdo_mysql en version 5.3.0 par exemple.

@+


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

Hors ligne

 

#5 10-08-2010 09:57:44

aurelien.demarest
Nouveau membre
Date d'inscription: 09-08-2010
Messages: 4

Re: Problème encodage caractères spéciaux

Tu aurais plus d'infos s'il te plaît qui me permettent de comprendre si c'est ça ou non?

Hors ligne

 

#6 10-08-2010 10:04:31

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

Re: Problème encodage caractères spéciaux

Les problèmes d'encodage sont assez récurrents sur ce forum. La règle c'est que toute la chaîne doit être en UTF-8 : la base, le connecteur, le charset html et surtout les fichiers (qu'on oublie parfois).

Il est très difficile de répondre sur ce sujet. Essaies de rechercher sur ce forum "accents" ou "utf".


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

Hors ligne

 

#7 10-08-2010 16:40:56

shadypierre
Membre
Date d'inscription: 24-03-2010
Messages: 617

Re: Problème encodage caractères spéciaux

Si tu est en 5.3.2 cherche pas plus loin, test avec des versions plus ancienne (avec wamp c'est super simple d'installer et de choisir ça version de php)

Hors ligne

 

#8 11-08-2010 09:42:38

aurelien.demarest
Nouveau membre
Date d'inscription: 09-08-2010
Messages: 4

Re: Problème encodage caractères spéciaux

Salut,

Merci de ta réponse mais tu te rends compte de ce que tu me dit???
Un problème de character set survient donc je change la version du PHP? Quand tu as un problème avec ta voiture tu la changes big_smile ? Ça me parait tellement être une abbération excuses moi...!
Surtout que changer la version c'est peut-être facile pour un projet unique mais imagine toi un serveur avec un tonne de projets! Je n'ose pas imaginer ce qu'un tel changement puisse impliquer..

J'espère bien trouver autre chose que changer de PHP car ça me parait pas être la bonne solution sincèrement mais merci quand même de la suggestion.

Aurélien

Hors ligne

 

#9 11-08-2010 15:28:47

shadypierre
Membre
Date d'inscription: 24-03-2010
Messages: 617

Re: Problème encodage caractères spéciaux

Bah écoute j'y peu rien si y'a un bug avec le pdo_mysql, donc oui si j'ai une voiture et que par exemple je veux rouler à 300km/h je change de voiture car la mienne ne le permet pas...

Hors ligne

 

#10 03-09-2010 20:19:58

Xim
Nouveau membre
Date d'inscription: 29-08-2010
Messages: 4

Re: Problème encodage caractères spéciaux

Pour afficher tous tes caractères comme il le faut.
En ce qui concerne ta base de donnée il faut vérifier que tous les champs soient en encodage utf8_unicode_ci ce doit aussi être le cas de la base de données, des tables et des champs.

Concernant les fichiers que ce soit php, js, html ou autre, il faut bien penser les enregistrer en UTF-8 (Sans BOM). Si tu utilise notepad++ tu peux vérifier cela dans le menu (encodage ou format).

Normalement cela te permettra d'éviter tous les soucis d'encodage.

Hors ligne

 

#11 04-09-2010 12:16:59

Dede
Membre
Date d'inscription: 26-06-2009
Messages: 99

Re: Problème encodage caractères spéciaux

Xim a écrit:

Pour afficher tous tes caractères comme il le faut.
En ce qui concerne ta base de donnée il faut vérifier que tous les champs soient en encodage utf8_unicode_ci ce doit aussi être le cas de la base de données, des tables et des champs.
...

En plus de cela,
j'ai modifier, sur mon serveur (Debian Lenny),  le fichier "charset" (/etc/apache2/conf.d):
=> AddDefaultCharset UTF-8


« Il ne faut pas lier un navire à une seule ancre, ni une vie à un seul espoir. »
Epictète
http://www.noumcreation.com

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