|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre Expert
![]() ![]() Inscription : octobre 2005 Messages : 3 398 ![]() |
Bonjour,
J'ai une vue personnalisé qui implémente l'interface Zend_View_Interface, qui me permet d'utiliser Smarty comme moteur de template. J'utilise également une base de données avec l'encodage UTF-8 bin. Dans ma page, j'ai bien une balise meta avec l'encodage utf-8. Cependant, j'ai tout de même des "?" qui apparaisse pour les caractères spéciaux. J'ai trouvé une réponse dans la FAQ, qui dit d'appeler la fonction : Code :
$this->view->setEscape('utf8_encode'); Ma question est donc, comme faire pour implémenter cette méthode dans ma vue personnalisée. Est-ce au moins possible ? Merci |
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : juin 2003 Messages : 4 893 ![]() |
Ta vue est personnalisée comment ? Avec une association au lieu d'un héritage ?
__________________
Modérateur PHP |
|
|
00
|
|
|
#3 | ||||
|
Membre Expert
![]() ![]() Inscription : octobre 2005 Messages : 3 398 ![]() |
C'est une classe que j'ai trouvé sur le site de Philippe Le Van, auquel j'ai apporté quelques modifications :
Code :
Code :
|
||||
|
|
00
|
|
|
#4 |
|
Membre à l'essai
![]() Inscription : juillet 2007 Messages : 38 ![]() |
Salut,
J'ai eu pas mal de problème avec utf-8 mais je n'utilise pas smarty donc à tout hasard : Si tu utilises MySql, il y as un probleme avec utf-8 cf. Chez moi ça à marché. |
|
|
00
|
|
|
#5 |
![]() ![]() Alain Sahli Ingénieur développement logiciels Inscription : décembre 2004 Messages : 1 086 ![]() |
Une solution pas très propre c'est d'utiliser la fonction PHP utf8_encode() lorsque tu fais des requêtes sur ta base. Tu encodes en UTF-8 avant de passer le texte à ta vue.
Sinon tu peux essayer (je ne sais pas ce que sa va donner) d'aller dans ta méthode assign et là avant d'insérer le $value dans ton array tu fais un utf8_encode().
__________________
Blog - Mon espace developpez - Vous voulez un site internet ? eZ Publish Certified developer |
|
00
|
|
|
#6 |
|
Membre Expert
![]() ![]() Inscription : octobre 2005 Messages : 3 398 ![]() |
En fait, ce que je me demandais, c'est :
au niveau client, c'est du UTF-8, ok, au niveau base de données, c'est du UTF-8. Maintenant, si je rentre les données d'un formulaire dans ma base, est ce que ce sera directement du UTF-8 ou je dois obligatoirement faire la conversion moi même en PHP ? Ensuite, pour ce qui est du setEncode sur ma vue, comme je l'ai dit, c'est une vue personnalisé, et je ne dispose pas de cette méthode, et je ne sais pas comment l'implémenter (la doc n'est pas très clair sur ce point). Merci. |
|
|
00
|
|
|
#7 | ||
![]() ![]() Inscription : juin 2003 Messages : 4 893 ![]() |
Citation:
Citation:
mais comme l'a dit Yoteco, ce n'est pas très propre d'utiliser utf8_decode/encode, normalement tu n'en as pas besoin si tout est en UTF-8
__________________
Modérateur PHP |
||
|
|
00
|
|
|
#8 | ||
|
Membre Expert
![]() ![]() Inscription : octobre 2005 Messages : 3 398 ![]() |
Citation:
Citation:
Merci et je vous tiens au courant |
||
|
|
00
|
|
|
#9 |
|
Membre Expert
![]() ![]() Inscription : octobre 2005 Messages : 3 398 ![]() |
Bon j'ai remplacé implements Zend_View_Interface par extends Zend_View. Il ne fait plus d'erreur quand j'appelle
Code :
$this->view->setEscape('utf8_encode'); Toujours mon point d'interrogation sur font noir quand il veut afficher un 'à'.Je ne vois plus quoi faire. Si vous avez des idées...
|
|
|
00
|
|
|
#10 |
|
Membre à l'essai
![]() Inscription : juillet 2007 Messages : 38 ![]() |
As tu essayée la modif de "Zend_Db_Adapter_Pdo_Mysql" ?
|
|
|
00
|
|
|
#11 |
|
Membre chevronné
![]() Développeur Web Inscription : avril 2005 Messages : 726 ![]() |
Oui, il faut aussi configurer la BD en utf8, avec set names UTF-8 (ou quelque chose comme ça, là je dis ça de mémoire)
__________________
HADOPI : black-out du net! |
|
|
00
|
|
|
#12 | |
|
Membre Expert
![]() ![]() Inscription : octobre 2005 Messages : 3 398 ![]() |
Citation:
Est-ce tout de même conseillé d'utiliser setName sur la base de données ?
|
|
|
|
00
|
|
|
#13 |
|
Membre chevronné
![]() Développeur Web Inscription : avril 2005 Messages : 726 ![]() |
Non, en fait le set name est juste là pour configurer le serveur mysql, qui par défaut fait ses entrées/sorties en iso, je crois. Si tu l'as bien configuré, c'est pas la peine.
__________________
HADOPI : black-out du net! |
|
|
00
|
|
|
#14 |
|
Membre Expert
![]() ![]() Inscription : octobre 2005 Messages : 3 398 ![]() |
Ok. Parce qu'au niveau de PHPMyAdmin, j'ai tout mis en UTF-8. Donc la base doit d'elle même traiter les connexions en UTF-8. Merci bien à vous
|
|
|
00
|
|
|
#15 |
|
Membre à l'essai
![]() Inscription : juillet 2007 Messages : 38 ![]() |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com