Je galère avec les problemes d'encodage.
La base SQL est en UTF-8.
Lors de la connexion j'ai bien spécifié : $db->query('SET NAMES UTF8');
Tous mes controllers heritnet d'une classe qui précise :
$this->view->setEncoding('UTF-8');
//$this->view->setEscape('utf8_encode');
//$this->view->setEscape('htmlentities');
Dans mes vues j'utilise $this->escape($this->monchamps);
Malgré cela, j'ai des gros problèmes d'encodage.
La même valeur accentué provenant de ma base de données, d'affiche plus ou mon bien selons mes actions. Et lescomportements sont variés.
Dans certains écrans ca s'affiche bien, parfois, ca ne s'affiche pas du tout, parfois ca m'affiche directement le code HTML pas interprété , parfois ca m'affiche les accents n'importe comment.
Je ne parviens pas totalement identifier pourquoi.
Parmis les choses que j'ai identifié c'est que si je passe la valeur issue de la base de donnée directement a la vue, ca se passe plutot bien.
Si par contre je passe par exemple par un array, dans ce cas ca marche (en general) mal. Mais néanmoins, j'arrive a avoir des comportements différents dans des conditions assez identiques.
Par ailleurs, si dans mon controller j'ajoute une de ces deux lignes :
//$this->view->setEscape('utf8_encode');
//$this->view->setEscape('htmlentities');
Mes problèmes changement, mais reste non homogènes.
Qu'est ce que j'ai mal fait ???
Merci d'avance
Nat
Partager