Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour à tous,
avec le code suivant :
$vue->formText('nom',$this->escape($this->user->nom), array("maxlength"=>50))
si mon attribut 'nom' se termine par un caractère accentué, j'ai un '?' qui vient s'ajouter à la fin...
vous savez comment je peux résoudre ce problème?
Dernière modification par toutoune60 (08-06-2007 17:36:39)
Hors ligne
quel est l'encoding que tu utilises ? si c du utf-8
alors faut le preciser ds le view ($view->setEncoding('utf-8'), la classe utilise par defaut "ISO-8859-1" qui est utilise dans htmlentities
Hors ligne
je viens de m'apercevoir qu'il n'est pas necessaire d'utiliser $this->escape dans formText, les valeurs sont encodes en dur en utf8 !!
va falloir signaler ca aux devs du ZF !
Hors ligne
Ce sont des données qui viennent d'une BD. Sur quelle encodage dois-je paramétrer mes vues? Celui de la BD ou celui des fichiers eux-mêmes?
Hors ligne
toutoune60 passe tout en utf8 : Bdd, charset, encoding comme ca tu es tranquille.
Hors ligne
Je ne comprend pas, j'ai toujours le même problème!
Dans ma vue, je fais :
echo $this->user->nom; echo $this->escape($this->user->nom); echo $this->formText('nom',$this->escape($this->user->nom)); echo $this->formText('nom',$this->user->nom);
Seul le premier echo est correct avec un caractère accentué à la fin!
Tous les autres me rajouttent un '?'!
Même en essayant vos solutions précédentes
Dernière modification par toutoune60 (16-04-2007 10:54:22)
Hors ligne
Petite rectification, si j'enlève le
$view->setEncoding('utf-8');
Alors les 2 premiers echo sont bons!
Mais toujours pas dans mes champs
Hors ligne
Personne n'a une idée?? Ca m'embête pas mal ce problème!
Hors ligne
Bonjour,
Pour que tout marche bien avec les charset, il faut savoir pour chaque élément dans quel charset tout fonctionne. Le plus simple est de tout mettre dans le même charset. Voilà une liste de trucs à vérifier qui ne doit pas être complète, mais c'est un début de piste (je suppose que tout passe en UTF8) :
* ta connexion avec la bdd est en UTF-8 : cf http://www.z-f.fr/forum/viewtopic.php?id=81
* tes tables en BDD sont en UTF-8
* tes fichiers contenant les vues ou des messages à renvoyer à l'utilisateur sont en UTF-8 (concrètement, je te conseille alors de mettre tous tes fichiers en UTF-8)
* tes pages HTML doivent se déclarer en UTF-8 :
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
dans le header
* si t'es en xhtml, il faut déclarer le xml en UTF-8
<?xml version="1.0" encoding="UTF-8" ?>
* le header de ta réponse HTTP doit déclarer la page en UTF-8. Pour faire ça, 2 solutions :
** en PHP
header('Content-Type: text/plain; charset="UTF-8"');
** dans la conf apache, ajouter un AddDefaultCharset UTF-8 dans le virtualHost
* si tu utilises des vues ZF : $view->setEncoding('utf-8');
Si ça ne marche tjrs pas 2 solutions :
* tu pleures
* tu cherches une autre explication...
Bon si il y a des cadors de UTF-8 ici, n'hésitez pas à ajouter les points que j'ai oublié...
Il y a eu une grosse discussion sur le sujet à l'adresse http://www.z-f.fr/forum/viewtopic.php?id=72
Hors ligne
Bonjour...
Avec pas mal de retard, un grand merci!
La solution qui a été fut de rajouter le bon header() en PHP sur l'ensemble de mes pages
Merci!
Hors ligne
Pages: 1