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