IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Zend Framework PHP Discussion :

Encodage UTF8 et ZF


Sujet :

Zend Framework PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 84
    Par défaut Encodage UTF8 et ZF
    Bonsoir à tous,

    Je suis un tout jeune débutant en ZF et j'ai pu voir au fil de ce post, ce post, et cette FAQ, que les pb d'accents et plus globalement d'encodage sont légion.

    Ces ressources ne m'ont pas suffits pour régler l'ensemble de ces pb, d'où ce post, qui a pour ambition de corriger une bonne fois pour toutes ces pb d'encodage.

    Pour ma part, vu que des gens beaucoup plus intelligents que moi ont décidé de mettre ZF en UTF8 par défaut, je me suis dis que j'allais le conserver et faire avec...

    Pour cela j'ai suivi la FAQ et ajouté un setEscape dans la fonction init() de chacun de mes controleurs.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    function init()
        {
            ...
            $this->view->setEscape('utf8_encode');
            ...
        }
    Hélas, cela n'a corrigé qu'une partie de mes pb puisque qu'une partie des affichages et l'ensemble de ce qui provient de la base de données reste avec des affichages tordus :
    Ajouter un nouvel �v�nement
    Title Description
    Mon évènement Jolie description de l'évène
    Merci d'avance à tous pour votre aide !

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Bonjour,

    Qu'avez-vous mis comme encodage par défaut de vos pages web.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

  3. #3
    Membre averti
    Inscrit en
    Mai 2005
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 21
    Par défaut Html entities
    Perso, j'ai fini par contourner le problème en passant les parties textes de ma DB en html entities.

  4. #4
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Citation Envoyé par bboulanger84 Voir le message
    Perso, j'ai fini par contourner le problème en passant les parties textes de ma DB en html entities.
    Oui bien sûr donc le mot 'mangé' tu me mets comme ceci dans ta db
    Peux tu me dire comment va tu faire une simple recherche de type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT champ FROM table WHERE champ LIKE 'mangé'
    Et bien tu ne sauras pas, imagine un sytème de login et de mot de passe, et que je met des accent dans mes mots de passe ou simplement un caractère de type '&', bonjour le travail.

    En gros ce n'est pas une bonne idée.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 98
    Par défaut
    Bonjour,

    J'ai mis l'entièreté de mon site en utf-8, je dois avoué que j'ai rencontré pas mal de problèmes. Voici les quelques solutions qui m'ont bien aidées.

    Pour commencer, je travails avec dreamweaver 8 et pour chaque fichier, je dois m'assurer qu'il est bien enrgistré en utf-8.
    Pour ce faire, je vais dans Modify > Page Properties (ou Ctrl+J). Là je choisi 'Title/Encoding' et je mets Encoding à 'Unicode (UTF-8)'. Ceci règle tous les problèmes d'affichage par les echo et companie. Il faut bien comprendre que cela à directement à voir avec la façon dont le fichier lui même est enregistré sur le disque dur et pas avec la programmation.

    Puis au niveau de la base de données (mysql), je spécifie pour toutes mes tables la Collation utf8_unicode_ci via phpadmin (pour les tables existantes, allez dans l'onglet 'Operation' de la table). De plus au niveau du code pour la connexion, j'execute le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    // First create the connection
    $db = Zend_Db::factory($config->database->adapter,  $config->database->params->toArray());
    // This is the only way the database returns contents encoded in utf8
    $db->getConnection()->exec("SET NAMES 'utf8'");
    Ce qui assure que toutes les données qui viennent de la base de données sont bien encodées en utf-8.

    Et enfin, je spécifie pour mes views :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?
    ...
    $this->headMeta()->appendHttpEquiv('Content-Type', 'text/html; charset=UTF-8');
    ?>
     
    <?= $this->headMeta() ?>
    Voila, pour moi avec ça tout marche. Dites moi si ça marche aussi pour vous

  6. #6
    Membre averti
    Inscrit en
    Mai 2005
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 21
    Par défaut A essayer
    Merci de ces interventions,
    Maître Pylos a parfaitement raison, le programme n'est pas encore en phase de test... => autant prévenir que guérir !
    Merci aussi pour la description de la procédure, je vais remanier mon projet dans ce sens

    A+, bernard.

  7. #7
    Expert confirmé
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Par défaut
    Salut,
    Citation Envoyé par Amon Voir le message
    Pour ma part, vu que des gens beaucoup plus intelligents que moi ont décidé de mettre ZF en UTF8 par défaut, je me suis dis que j'allais le conserver et faire avec...
    Je ne sais pas si la décision de tout encoder en UTF-8 est une marque d'intelligence, mais c'est en tout cas souvent nécessaire pour des sites multi-langues, et indispensable quand on manipule des alphabets non latins. Hormis ce cas de figure, d'expérience, on a tout intérêt à rester en ISO-8859-1.
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  8. #8
    Membre éclairé Avatar de miya
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 469
    Par défaut
    un réup! car le sujet sur l'encodage mérite d'être approfondis

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Encodage] utf8 image affichage
    Par oim dans le forum Langage
    Réponses: 7
    Dernier message: 05/04/2007, 14h24
  2. Pb encodage utf8
    Par rems14 dans le forum Outils
    Réponses: 1
    Dernier message: 18/02/2007, 19h47
  3. [Tableaux] Encodage utf8 d'un tableau
    Par lodan dans le forum Langage
    Réponses: 8
    Dernier message: 28/08/2006, 13h57
  4. Problème d'encodage UTF8
    Par vg33 dans le forum Langage
    Réponses: 6
    Dernier message: 26/07/2006, 19h28
  5. fonction native d'encodage utf8 ?
    Par Bruno2000 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 30/05/2006, 17h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo