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_Db PHP Discussion :

Le point sur l'encodage UTF-8 / HTML


Sujet :

Zend_Db PHP

Vue hybride

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

    Informations forums :
    Inscription : Décembre 2008
    Messages : 105
    Par défaut Le point sur l'encodage UTF-8 / HTML
    Je galère avec les problemes d'encodage.
    La base SQL est en UTF-8.
    Lors de la connexion j'ai bien spécifié : $db->query('SET NAMES UTF8');

    Tous mes controllers heritnet d'une classe qui précise :
    $this->view->setEncoding('UTF-8');
    //$this->view->setEscape('utf8_encode');
    //$this->view->setEscape('htmlentities');


    Dans mes vues j'utilise $this->escape($this->monchamps);


    Malgré cela, j'ai des gros problèmes d'encodage.

    La même valeur accentué provenant de ma base de données, d'affiche plus ou mon bien selons mes actions. Et lescomportements sont variés.
    Dans certains écrans ca s'affiche bien, parfois, ca ne s'affiche pas du tout, parfois ca m'affiche directement le code HTML pas interprété , parfois ca m'affiche les accents n'importe comment.
    Je ne parviens pas totalement identifier pourquoi.

    Parmis les choses que j'ai identifié c'est que si je passe la valeur issue de la base de donnée directement a la vue, ca se passe plutot bien.
    Si par contre je passe par exemple par un array, dans ce cas ca marche (en general) mal. Mais néanmoins, j'arrive a avoir des comportements différents dans des conditions assez identiques.

    Par ailleurs, si dans mon controller j'ajoute une de ces deux lignes :
    //$this->view->setEscape('utf8_encode');
    //$this->view->setEscape('htmlentities');

    Mes problèmes changement, mais reste non homogènes.

    Qu'est ce que j'ai mal fait ???

    Merci d'avance

    Nat

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 668
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 668
    Par défaut
    Citation Envoyé par boubil Voir le message
    La même valeur accentué provenant de ma base de données, d'affiche plus ou mon bien selons mes actions.
    comment est stockée cette donnée ? avec la même application PHP / Zend ou bien autrement : autre application, insertion manuelle, importation d'un fichier SQL ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 105
    Par défaut
    J'ai les deux cas :

    - des données que j'ai importées
    - des données que je saisie via php/Zend.

    J'ai exactement les mêmes problèmes dans les deux cas.

    C'est d'ailleurs curieux, car la même donnée, affichée a différents endroits ne ressort pas de la même façon.


    J'ai un autre exemple de problème d'encodage :

    J'ai une vue partielle qui contient
    <h2><?php echo $this->escape($this->montitre)); ?> </h2>
    ...
    <?php echo $this->escape($this->data)); ?>

    Elle est appellée dans une vue

    <?php echo $this->partial ("/commun/mavuepartielle.phtml", array('titre'=> "Test accent : &eacute;" , 'data'=>$this->data));?>

    Le résultat : Test accent &eacute;

    Le HTML n'est pas interprété.
    Si par contre je passe des accents "pur" : Test accent : é
    Je me retrouve avec un point d'interrogation blanc dans un losage noir.
    alors que la data qui venait de mon controller va être bien pris en charge.
    Si j'enlève le escape, ca se passe bien, mais si mon titre vient de la base de donnée ou juste du controller paf, ça s'affiche de travers.


    Par contre si la data venait d'un array que j'avais constitué à partir de données de ma db dans ce cas, ca a tendence a mal se passer. Dans ce cas, je me retrouve avec des accents tout bizares.

    Voila.

    Nat

Discussions similaires

  1. [ZF 2.x] Envoyer un mail HTML avec encodage UTF-8
    Par narmataru dans le forum Zend Framework
    Réponses: 4
    Dernier message: 07/06/2013, 15h09
  2. Spool avec paramètre sur l'encodage en utf-8 sans BOM
    Par saidna123 dans le forum Oracle
    Réponses: 5
    Dernier message: 02/05/2013, 10h04
  3. [HTML] formulaire qui pointe sur un autre serveur
    Par Invité dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 16/08/2006, 12h54
  4. calcul d'un point sur la base d'un cone
    Par Admin dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 18/11/2003, 21h18

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