Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
J'ai un formulaire qui comprend un textaera.
Quand je récupère les données de ce formulaire et je les affiches je reçois des caractères erronées qui remplacent les accents malgré le fait d'avoir mis
public function init() { ..... $this->view->setEscape('utf8_encode'); ......... }
Il faut signaler que tous les autres caractères(c-ad à part ceux provenant de mon textaera) sont bien échappés
Hors ligne
;(
Hors ligne
t'a essayé de faire un ut8_encode ? ou utf8_decode ? et de les écho ?
Hors ligne
Es-tu sûr que ta page est bien encodée en UTF8 ? C'est à dire que ton explorateur l'affiche en UTF8 et donc encode les données entrantes en UTF8. Tu peux vérifier ça, avec Firefox, dans le menu Affichage > Encodage des caractères.
Ensuite, quand tu parles de "tous les autres caractères" s'affichent correctement, tu veux parler de caractères accentués que tu as saisis dans d'autres champs du même formulaire sur la même page ? Ou de caractères accentués affichés sur ta page ?
Hors ligne
j'ai essayé de faire
utf8_encode($formdata['notes']);
utf8_decode($formdata['notes']);
ça ne marche pas
Hors ligne
Voici mon code :
$notes =new Zend_Form_Element_Textarea('notes'); $notes->setLabel('Notes de Création/Modification') ->setRequired(true) ->setAttribs(array('rows'=>3)) ->addFilters(array('StripTags','StringToUpper','Alnum')) ->addValidator('NotEmpty');
Je fais un test avec la chaine : été ' tête \ ça
J'obtens ce résultat : été ' tête \ ça
Hors ligne
Hello,
"été ' tête \ ça" == utf8_encode("été ' tête \ ça");
Tes données ne t'arrivent pas encodées.
A+
Hors ligne
Ouais c'est bien, mais ou je dois mettre mon encodage si les données de mon formulaire son envoyé comme ceci ?
$form->populate($news->toArray());
Hors ligne
ajoute le meta charset dans le header de la page pour dire à ton navigateur que tu lui parle en UTF-8
<META http-equiv="Content-Type" Content="text/html; charset=UTF-8">
A+JYT
Hors ligne
C'est déjà fait et ceci aussi:
$this->view->setEscape('utf8_encode');
La Bd est bien en utf8...Et pourtant, encore des été quand je récupère les donnés avec populate...
On peut setter l'encodage sur un formulaire spécifiquement ?
Hors ligne
je ne comprends pas ce que tu veux faire
tes données sont en UTF-8 sur le serveur et tu veux les afficher en ISO ?
ou elle sont en ISO côté serveur et tu veux les afficher en UTF-8
Car là tu dit à ta vue encode en UTF-8 les données
Alors que j'ai crus comprendre qu'elle sont déjà en UTF-8
si tu fait de l'UTF-8 ver Utf-8 tu n'a rien d'autre à mettre que le meta dans ta page
A+JYT
Hors ligne
Peut-être un coup d'oeil sur ce post :
http://www.z-f.fr/forum/viewtopic.php?id=81
++
Hors ligne
Ce que je fais...
Je créer une nouvelle avec un formulaire, le tout se sauvegarde bien dans la base de donnée et s'affiche bien (bonne encodage dans le site). Bon tout est cool, maintenant, je dois modifier cette nouvelle, je prends les donnés de la bd et je fais ceci:
$form->populate($news->toArray());
Maintenant, mes donnés qui sont bien affichés ailleurs dans le site (entre <p></p>) ne sont pas bien affichés dans le champs de mon formulaire (genre: été)
J'ai fait dans mon index.php:
setlocale(LC_CTYPE,'fr_FR.UTF-8'); iconv_set_encoding('internal_encoding', 'UTF-8'); iconv_set_encoding('output_encoding', 'UTF-8'); iconv_set_encoding('input_encoding', 'UTF-8'); header('Content-Type: text/html; charset=utf-8');
Controller:
$this->view->setEscape('utf8_encode');
Config.ini:
db.params.charset = utf8
Layout:
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
Là, pourquoi ceux du formulaire ne sont pas encodé encore...
Et ma BD est bien en UTF-8
J'attends vos réponses
Dernière modification par probitaille (12-05-2009 21:48:51)
Hors ligne
Ton problème doit être le même que celui rencontré par là:
http://www.z-f.fr/forum/viewtopic.php?pid=17753#p17753
Hors ligne
Pages: 1