Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
J'ai eu à créer un formulaire Zend_Form.
Problème, un mot accentué (exemple fête) s'affiche :
- Correctement lorsqu'il est utilisé dans le Label d'un champ de formulaire
- Avec un � au milieu lorsqu'il s'agit de la valeur d'un champ de formulaire.
Je précise que :
- La valeur du champ ne provient pas le la base de données mais a été saisie dans le formulaire lui même au cycle précédent. cela ne vient donc pas de la DB à priori.
- Je travaille en UTF8 :
- Mon éditeur de scripts php travaille en utf8 sans BOM
- Le site génère des pages avec header en UTF8 : <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
- Mon navigateur affiche en UTF8
- Ma DB MySQL est en UTF8 (tables et colonnes) et je force MySQL à travailler un UTF8 (..."SET NAMES 'UTF8'"..) => mais à mon avis cela ne concerne pas mon problème.
- J'utilise ZF 1.9.6, PHP 5.2.9...
Quelque part, il semble que ce que je tape dans mes champs de formulaire soit pris en compte en iso-8859-1 et non pas en UTF8
Quelqu'un sait il comment corriger ce problème ?
Hypothèses :
-Y a t-il des problèmes connus avec les Zend_Filter ? J'utilise notamment Zend_Filter_Callback('ucfirst')
-Est ce lié à la locale (FR_fr)
Merci pour votre aide,
ps : je travaille en UTF8 car je fais de l'AJAX...
Dernière modification par zebulon (07-01-2010 01:08:48)
Hors ligne
Est-ce que tes headers http indiquent que ta page est en utf-8 ?
soit tu le fixe dans ta conf apache avec AddDefaultCharset UTF-8
soit dans ton code php
header('Content-Type: text/html; charset=utf-8');
A+, Philippe
Hors ligne
L'enfer de l'encoding.
Tu peux tout configurer en UTF-8 si a un moment donné tu as saisis des données en ISO dans ta DB alors elles sortiront en ISO. Essaie de supprimer toutes les données ISO de ta DB et de recommencer depuis le début.
Pour ma part, voici comment la requête pour la connexion est passée, elle est un peu différente de la tienne :
$database->query('SET NAMES utf8');
Hors ligne
Bonjour,
Merci pour ces éléments.
J'ai modifié la config Apache en ajoutant AddDefaultCharset UTF-8 .... Cela n'a rien changé
Puis, j'ai supprimé mes Zend_Filter et la magie (noire !) : Mes affichages sont devenus corrects !! Grrrr
Il y a donc peut être un bug dans Zend_Filter ... ou alors je ne l'utilise pas correctement
Si quelqu'un à des explications sur ces hypothèses, je suis preneur d'informations.
D'ici là, je vais devoir "Zend_filtrer" en contournant Zend_Filter.
Cordialement,
Dernière modification par zebulon (07-01-2010 22:39:37)
Hors ligne
Pages: 1