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 :

problème Encodage utf8 + css [ZF 1.7]


Sujet :

Zend Framework PHP

  1. #1
    Membre actif 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
    Points : 240
    Points
    240
    Par défaut problème Encodage utf8 + css
    Bonjour aux forums,

    J'ai tenté de résoudre mon problème de mon coté, mais je n'y comprend vraiment plus rien du tout.. et je sais meme pas s'il y a une solution.

    Je vous explique en image. Mon site passe correctement, aucun problème de css, sous firefox: ok , sous ie: ok, la preuve en image sous ie :



    Les différents problèmes ont été résolu avant la mise en place de zend.

    Je construis donc mon site dynamiquement, lié a une BD MySQL: 5.0.51a.

    Mon problème arrive lorsque j'affiche mon menu, et la c'est le drame

    sous firefox, aucun problème:



    et voila mon problem : sous ie :



    J'ai bien tenté de convertir ma base de donné en utf8 :



    de convertir mes fichiers 'pages.php' 'layout.php' sous notepad++ en utf8 ( au passage, le CSS déconne encore plus) mais ca ne marche pas.

    Ou est le problème? CSS? Encodage?

    Merci par avance de votre aide!!

  2. #2
    Membre actif

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 183
    Points : 207
    Points
    207
    Par défaut
    As tu regarder du coté des balises méta?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <meta name="Content-Type" content="text/html; charset=UTF-8" >
    Ou de la transaction php/mysql

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SET NAMES 'charset_name'
    SET NAMES UTF8
    

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 98
    Points : 93
    Points
    93
    Par défaut
    Salut miya,

    Comme tu as participé à cette discussion, je suppose que tu as bien suivi toutes les étapes pour configurer ton site en utf-8.

    De mon côté tout fonctionne nickel. La seule différence que je remarque (grâce à tes photos), c'est que dans la base de données mysql, j'ai choisi l'encodage utf8_unicode_ci et pas l'encodage utf8_bin.

    Essais de changé cela et dis nous si ça marche

  4. #4
    Membre actif 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
    Points : 240
    Points
    240
    Par défaut
    Merci pour vos réponses. J'en ai profité pour remettre mon code au propre, comme vous me l'avez conseillé.

    Hormis ca mon problème persistait, le problème venait de mon css, et plus particulièrement des balises <ul> et <li> et d'un padding que j'ai mis dans mon fichier css. Ces balises ne réagissent pas de la meme manière entre firefox et ie!

    Sinon, je ne savais pas quel utf8 choisir, donc si ca marche en utf8_unicode_ci, alors je te suis

    Tout de meme pour que ce post serve à d'autre personne, en résumé pour l'encodage utf8:

    - convertir sa BD en utf8_unicode_ci
    - convertir sous notpad++(ou PSD) ces fichiers en utf8 (dans mon cas je l'ai appliqué à la vue et layout)
    - bien évidemment ne pas oublier le meta code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
    -dans index.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $db->getConnection()->exec("SET NAMES 'utf8'");

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 98
    Points : 93
    Points
    93
    Par défaut
    Salut miya,

    Petite rajoute à ton résumé.

    Quand vous enregistrez vos fichiers en utf-8, faites très attention à ne pas inclure une BOM (signature de fichier).
    Celle-ci, venant dans l'entête du fichier, est considéré par PHP comme des caractères en dehors de vos balise <?php ?> et donc comme de l'ouput.
    Ca ne pose pas de problème en général sauf à partir du moment où vous voulez changer les headers (session_start(), header(), ...).

    Voir ici, pour plus de détails...

    Sinon, content de voir que ton problème est résolu miya


    PS: Il y a des view helpers pour les meta données. Ces helpers sont pratiques quand vous utilisez Zend_Layout. Ils permettent de séparer l'initialisation des meta donnes spécifiques à la view de l'action et leurs affichage dans la view du Zend_Layout

    Genre pour faire :

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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    //Code dans la view de l'action du controller
    <? $this->headMeta()->appendHttpEquiv('Content-Type', 'text/html; charset=UTF-8'); ?>
     
    // Code dans la view dans la view du Zend_Layout
    <?= $this->headMeta() ?>

  6. #6
    Membre actif 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
    Points : 240
    Points
    240
    Par défaut
    Merci oliviercuyp pour ces éclaircissements toujours aussi clair

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 98
    Points : 93
    Points
    93
    Par défaut
    Avec plaisir miya

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 98
    Points : 93
    Points
    93
    Par défaut
    Dernière petite rajoute après avoir eu un autre soucis avec l'utf-8.
    Pensez à mettre au début de votre bootstrap ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    iconv_set_encoding("internal_encoding", "UTF-8");
    iconv_set_encoding("output_encoding", "UTF-8");
    Et d'utiliser les fonctions tel que iconv_strlen, iconv_substr(), ... à la place de strlen(), substr()... pour éviter les ennuis avec les manipulation de string.

    De plus le Validator StringLength() de ZF utilise ces functions, il est donc bon de spéicifier l'encodage

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 84
    Points : 80
    Points
    80
    Par défaut
    Décidément, l'encodage avec ZF fait parler de lui !!

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

Discussions similaires

  1. problème encodage UTF8 avec mysql
    Par herykid83 dans le forum Requêtes
    Réponses: 1
    Dernier message: 25/07/2011, 16h49
  2. probléme encodage utf8
    Par hihi30 dans le forum Requêtes
    Réponses: 1
    Dernier message: 11/09/2009, 17h49
  3. [MySQL] Problème d'encodage utf8
    Par tomix81 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 25/07/2007, 22h31
  4. [MySQL] Problème encodage UTF8
    Par hatembr dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 27/04/2007, 18h00
  5. Problème d'encodage UTF8
    Par vg33 dans le forum Langage
    Réponses: 6
    Dernier message: 26/07/2006, 19h28

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