Zend DB和编码

Rob*_*bin 4 php encoding zend-framework utf-8 zend-db

我刚刚遇到了一些比较奇怪的东西,我使用Zend Framework 1.10和Zend_Db_Table模块从数据库中读取一些数据.数据库本身,表和所涉及的字段都将其归类设置为"utf8_general_ci",并且当使用phpMyAdmin检查时,所有特殊字符在DB中正确显示格式.此外,使用Zend_Db_Table保存工作正常,但是当我读取数据并将其回显到我的浏览器时,它将返回为ISO-8859-1,而不是UTF8.在尝试使用json_encode(仅适用于UTF8字符串作为输入)对DB返回的值时,我注意到了同样的事情.

如何设置Zend_Db_Table/Zend_Db_Row应该始终使用UTF8并返回UTF8值?我还没有在我的应用程序中设置有关编码的任何内容.

非常感谢你的帮助!

Dio*_*ius 13

请注意.就我而言,这个帮助:

    $this->db = new Zend_Db_Adapter_Pdo_Mysql(array(
        'host'     => $config['db_hostname'],
        'username' => $config['db_username'],
        'password' => $config['db_password'],
        'dbname'   => $config['db_database'],
        'charset'  => 'utf8'
    ));
Run Code Online (Sandbox Code Playgroud)


arm*_*dfp 5

resources.db.params.charset = utf8
Run Code Online (Sandbox Code Playgroud)

就像 robertbasic 说的那样。