2010-11-09 7 views
0

Je développe un site web avec des caractères brésiliens en utilisant Zend Framework et mes éléments de menu de navigation sont dans une base de données.Breadcrumbs avec Zend_Navigation et encodage de caractères

J'ai vérifié mon encodage de caractères dans la méta-balise HTML, dans les fichiers et ma base de données. Tout est réglé sur UTF-8 et tout mon site est bien rendu (y compris mes éléments de menu qui ont un caractère accentué.)

Bien que j'utilise Zend_Navigation pour rendre un fil d'Ariane et ça ne va pas très bien Voir l'image ci-dessous:

alt text

Missão est ce que j'ai dans ma base de données. Malheureusement, il ne devient à la place ã. Je ne sais pas pourquoi.


Je J'utilise aussi Zend_Navigation dans mon module d'administration pour Breadcrumb et Menu qui rendent parfaitement. La différence est que j'utilise un XML dans mon module d'administration et des tableaux dans mon module par défaut (ce qui pose problème).

J'ai essayé d'écrire le XML à partir de l'objet Config en utilisant Zend_Config_Writer_Xml. Ensuite, j'ai vérifié le fichier et il a été écrit correctement: <label>Informa&ccedil;&otilde;es</label>. Bien que, pour le rendu XML correct, il suffit d'écrire juste <label>Informações</label> (c'est ce que j'ai dans le XML de navigation du module d'administration). Eh bien, et si j'écris Informações directement dans le tableau, puis lui demander d'écrire le XML? J'ai essayé ceci et j'ai obtenu <label>Informa&#xE7;&#xF5;es</label> qui ne fonctionne pas, aussi.

Je voudrais trouver une solution parce que je suis à court de temps

Répondre

0

Je dirais que l'assistant est d'ariane Echapper à la sortie automatiquement. There is a hardcoded call to escape() in renderStraight(). Vous pouvez vérifier en regardant le code source et voir si le & est un &amp;.

Si vous utilisez déjà UTF-8, vous ne devez pas utiliser d'entités pour vos caractères spéciaux. Utilisez simplement leur représentation régulière. Pour contourner XML en le convertissant en entités make sure the XML file is set to write UTF-8.

Si tout ce qui n'aide pas, check that the webserver is serving the Response in UTF-8. Les méta-tags sont juste des fallbacks et ne seront pas pris en compte si le serveur Web envoie un encodage. Bien que ce soit peu probable la raison si d'autres entités montrent bien.