Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
j'ai un xml issu d'une base de données qui commence par :
<?xml version="1.0" encoding="ISO-8859-1"?>
Il contient l'architecture du menu de navigation.
Je fais donc dans un plugin :
$config = new Zend_Config_Xml($navigation->getTreeXML(), 'nav'); // getTreeXML retourne une chaine de caractère contenant le menu de navigation sous forme XML
$container = new Zend_Navigation($config);
$view->navigation($container);
et dans mon layout :
echo $this->navigation()->menu();
Problème, le site est en UTF-8. Du coup, certains caractères ne s'affichent pas correctement, notamment ceux avec accents.
Je n'ai pas vu dans la doc Zend_Config_Xml ou Zend_Navigation si il était possible de spécifier une conversion d'encodage ?
Ou sinon à quel niveau le faire à la main?
Hors ligne
Modifie ça dans ta base <?xml version="1.0" encoding="ISO-8859-1"?> par sa <?xml version="1.0" encoding="UTF-8"?>
Nan??????
Hors ligne
Ca me donne une fatal error "Input is not proper UTF-8".
En fait ce n'est pas une table mais une vue, et si je converti mes tables d'origines de latin 1 à utf8, il n'y a plus de fatal error mais il y a toujours un problème sur les caractères accentués.
J'ai l'impression qu'il se passe quelquechose dans Zend_Config_Xml car quand j'affiche directement le resultat de getTreeXml, il n'y a pas ce problème sur les caractères accentués.
Hors ligne
Est-ce que tu as configuré la connexion vers mysql en UTF-8 (SET NAMES UTF-8).
L'encodage de tes table ne signifie pas que ta base discute en UTF-8 avec PHP. Si tu lances la requête ci dessus, tu forces mysql et php à parler en UTF-8 (quel que soit l'encodage de tes tables).
A+, Philippe
Hors ligne
J'ai essayé ca ne règle pas mon problème malheureusement.
Il me semble que de toute façon le problème se situe au niveau de Zend_Config_Xml (ou Zend_Navigation ?).
En effet, quand je fait un echo sur ma chaine de caractères, les accents s'affichent correctement. Mais quand je fait :
echo $this->navigation()->menu();
J'ai le problème d'affichage des caractères accentués.
Dernière modification par pilsner (18-09-2009 15:04:08)
Hors ligne
Je sais que c'est peut être un peu tard mais je viens de rencontrer e même problème que toi et je l'ai résolu en callant dans mon layout ça :
echo $this->headMeta() ->setHttpEquiv('Content-Type', 'text/html;charset=utf-8');
Hors ligne
Pages: 1