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 :

Problème d'encodage UTF-8 avec Zend_Db Mysqli [ZF 1.10]


Sujet :

Zend_Db PHP

  1. #1
    Rédacteur

    Avatar de arnolem
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 856
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 856
    Points : 6 114
    Points
    6 114
    Par défaut Problème d'encodage UTF-8 avec Zend_Db Mysqli
    Bonjour,

    J'ai un drôle de problème avec une application Zend Framework et l'encodage de caractère. J'ai une base de données utilisant 'utf8_general_ci' et je récupère une information dans ma page qui est également en UTF-8.

    Au lieu d'afficher sécurité, il affiche s�curit�.

    La détection de l'encodage de la chaine me dit bien que c'est de l'UTF-8 et pourtant, ça ne marche pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var_dump(mb_detect_encoding($var), $var);
    string 'UTF-8' (length=5)
    string 's�curit�' (length=10)
    J'ai configuré mon projet de la manière suivante :
    Code application.ini : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    database.adapter = "Mysqli"
    database.params.charset = "UTF8"
    database.params.host = "127.0.0.1"

    Code Boostrap.php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
        protected function _initDb()
        {
            // Paramètres de base de données
            $database_config = $this->getOption('database');
     
            // Création de la connexion en base de donnée à partir du config
            $db = Zend_Db::factory($database_config['adapter'],
                                   $database_config['params']);
     
            // Enregistrement dans le registre pour une utilisation ultérieure
            Zend_Registry::set('db',$db);
            return $db;
        }

    Code de mon model : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        public function maFonction(){
            $sql = $this->db->select()->from('maTable');
            $stmt = $this->db->query($sql);
            return $stmt->fetchAll();
        }

    Je sèche un peu pour le coup, avez-vous une idée ?

    Merci d'avance

  2. #2
    Rédacteur

    Avatar de arnolem
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 856
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 856
    Points : 6 114
    Points
    6 114
    Par défaut
    Je viens de trouver mon erreur et ça n'a rien à voir avec Mysql ou le ZF.
    Je laisse la solution pour aider ceux qui comme moi, aurait un manque de vigilance dans la manipulation de l'UTF-8.

    Dans mon contrôleur j'avais ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $var = strtolower($table['champ']);
    Mais comme on est en UTF-8, on doit utiliser MB :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $var = mb_strtolower($table['champ'],'UTF-8');
    Et là, plus de problème d'encodage

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

Discussions similaires

  1. [FPDF] Encodage UTF-8
    Par navis84 dans le forum Bibliothèques et frameworks
    Réponses: 17
    Dernier message: 08/09/2018, 12h43
  2. [DOM] Problème d'encodage UTF-8
    Par Valter dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 14/05/2008, 15h32
  3. Problème d'encodage UTF-8
    Par Shugo78 dans le forum Ubuntu
    Réponses: 0
    Dernier message: 23/11/2007, 19h40
  4. [MySQL] Problème d'encodage UTF-8
    Par cloridriks dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 30/10/2007, 11h19
  5. PB encodage UTF-8 avec Japonais, Chinois
    Par ch33k0n dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 18/06/2007, 12h02

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