Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
J'ai un problème d'encodage des caractère quand j'utilise des décorator. Un "é" devient "é". Lorsque j'utilise les champs de base, cela ne pose pas de problème. Je pense donc qu'il s'agit d'un problème lié à l'UTF-8.
J'ai suivi le tutoriel ici : http://www.kitpages.fr/php_tutorial_utf8.php. Mais sans résultat.
J'ai configuré mon projet sous Zend Studio pour qu'il soit en UTF-8.
J'ai tenter de convertir tous les fichiers en UTF-8 sous ubuntu avec la fonction iconv. La fonctionne ne fonctionne pas cela me donne :
dougui@dougui-laptop:~/workspace/Zend/Collectionneurs/library/Zend/Mime$ iconv -f windows-1252 -t utf8 Decode.php -o Decode2.php
dougui@dougui-laptop:~/workspace/Zend/Collectionneurs/library/Zend/Mime$ utrac -p Decode2.php
ASCII
J'ai bien sur essayé avec différent encode (UNICODE, ASCII etc.).
Toutes mes tentatives sont restés sans résultats. Le plus troublant est que cela ne fonctionne pas uniquement avec mes propres décorator... Ceci indique qu'apache est correctement configuré il me semble.
Je n'utilise pas de base de donnée, il ne s'agit donc pas d'un problème mysql.
Quelqu'un aurait-il une idée?
Merci d'avance.
Hors ligne
Bonjour,
as tu essayé les fonction php utf8_decode() & utf8_encode() ?
http://fr2.php.net/manual/fr/function.utf8-decode.php
http://fr2.php.net/manual/fr/function.utf8-encode.php
Hors ligne
Bonjour,
Non je n'ai pas essayé et je pense que cela devrait fonctionner. Cependant je trouve ça vraiment dommage d'être obligé de faire ça. Ça limite les fonctionnalités de Zend je trouve. Si quelqu'un à une solution je suis preneur.
Hors ligne
Ahh ! l'encodage des caractères !!!
Comme il intervient à tous les niveaux, quelques conseils pour que tu puisses vérifier tout çà tranquillement.
Pour éviter des conversions multiples, le plus simple est de s'assurer de travailler en UTF8 de bout en bout de la chaîne, depuis la base de données jusqu'à l'affichage, en passant par les scripts PHP.
La base de données :
- vérfie quel est son encodage (UTF-8)
Le transfert entre la base de données et l'application :
- entre ta base de données et l'utilisation des données, une conversion peut s'effectuer. Par exemple, pour Oracle, ta base peut être en UTF-8. Si tu as une variable d'environnement NLS-LANGUAGE côté utilisation des données, Oracle va convertir automatiquement toutes les données qu'il transfert entre la base et l'ordi qui consomme ces données. Regarde si tu es dans ce cas de figure.
Le script PHP :
- assure toi que tous tes scripts PHP sont en UTF-8 (tu as eu des difficultés. Normalement, un IDE comme Netbeans ou Eclipse sur lequel est basé l'outil Zend te permettent de convertir tous les scripts PHP d'un projet)
- fait un script simple qui te permet de vérifier le code ASCII récupéré d'une base de données. Met dans la base des codes accentués, un caractère euro, etc. Vérifie que le code ASCII que tu récupères est bien celui attendu.
La vue PHTML :
- assure-toi qu'elle est en UTF8
- reprend les données accentuées du script PHP, transfert les à ta vue et affiche à la fois le code ASCII et la représentation visuelle du code ASCII. Comme çà, tu as à la fois le code ASCII de la donnée accompagné de sa représentation visuelle.
... avec tout çà, tu devrais t'en sortir.
... relis bien les conseils sur wiip.fr (ils sont excellents!!!)
Jean
Hors ligne