Bonjour,
Les problèmes de charsets commence à me taper très sérieusement sur le système… Je suis encore débutant, et j'ai déjà affrontés moult obstacles à vouloir utiliser UTF-8 sans framework…
J'essaie de me mettre à Zend, et premier problème : affichage anormal !
Bref, fini de pleurer… J'ai cru comprendre que Zend discute généralement bien avec UTF-8, j'ai fait moult recherches (depuis 24h), mais rien
Le code. Bootstrap
Le controller
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <?php // Chargement de la configuration $config = new Zend_Config_Ini('./application/config.ini', 'general'); $registry = Zend_Registry::getInstance(); $registry->set('config', $config); try { $db = Zend_Db::factory($config->db); } catch (Zend_Db_Adapter_Exception $e){ echo $e->getMessage(); } Zend_Db_Table::setDefaultAdapter($db);
La vue
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <?php class IndexController extends Zend_Controller_Action { function indexAction() { $this->view->title = "Accueil"; $nouvelles = new News(); $this->view->nouvelle = $nouvelles->fetchRow(); } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <h2>La dernière news</h2> <h3><?php echo $this->nouvelle->titre; ?></h3> <?php echo $this->nouvelle->contenu;?>
En l'état j'obtiens ceci :
Le plus drôle est qu'en ajoutant un "utf8_decode()" dans la vue, le résultat est plus propre, j'ai seulement les "à" qui sont remplacé par le point d'intérrogation dans un carré noir... Aucune idée pour les caractères chinois que je vais avoir à utiliser, mais j'ai un peu peur !Enfin... Après de longues heures de gestation étalées sur un peu plus de trois mois,
Je précise que ma BDD MySQL est entièrement en utf8_unicode_ci, tou mes fichiers de scripts en UTF8 without BOM, que j'ai bien les méta pour indiquer d'afficher en UTF-8, et que d'ailleurs Firefox le fait…Enfin... Après de longues heures de gestation étalées sur un peu plus de trois mois,
Je vous en supplie, dites moi que je ne suis vraiment qu'un idiot de débutant et que mon problème est très simple à régler !
Merci d'avance
Partager