--- /dev/null
+Index: Zend/Db/Adapter/Mysqli.php
+===================================================================
+--- Zend/Db/Adapter/Mysqli.php (revision 11422)
++++ Zend/Db/Adapter/Mysqli.php (working copy)
+@@ -313,6 +313,10 @@
+ require_once 'Zend/Db/Adapter/Mysqli/Exception.php';
+ throw new Zend_Db_Adapter_Mysqli_Exception(mysqli_connect_error());
+ }
++
++ if(array_key_exists('charset', $this->_config)) {
++ $this->_connection->set_charset($this->_config['charset']);
++ }
+ }
+
+ /**
+Index: Zend/Db/Adapter/Pdo/Mysql.php
+===================================================================
+--- Zend/Db/Adapter/Pdo/Mysql.php (revision 11422)
++++ Zend/Db/Adapter/Pdo/Mysql.php (working copy)
+@@ -93,6 +93,20 @@
+ {
+ return $this->fetchCol('SHOW TABLES');
+ }
++
++ /**
++ * @return void
++ */
++ protected function _connect()
++ {
++ if ($this->_connection) {
++ return;
++ }
++ parent::_connect();
++ if (array_key_exists('charset', $this->_config)) {
++ $this->_connection->exec('SET NAMES ' . $this->_quote($this->_config['charset']));
++ }
++ }
+
+ /**
+ * Returns the column descriptions for a table.
+Index: Zend/Db/Adapter/Pdo/Pgsql.php
+===================================================================
+--- Zend/Db/Adapter/Pdo/Pgsql.php (revision 11422)
++++ Zend/Db/Adapter/Pdo/Pgsql.php (working copy)
+@@ -71,6 +71,20 @@
+ 'NUMERIC' => Zend_Db::FLOAT_TYPE,
+ 'REAL' => Zend_Db::FLOAT_TYPE
+ );
++
++ /**
++ * @return void
++ */
++ protected function _connect()
++ {
++ if ($this->_connection) {
++ return;
++ }
++ parent::_connect();
++ if (array_key_exists('charset', $this->_config)) {
++ $this->_connection->exec('SET NAMES ' . $this->_quote($this->_config['charset']));
++ }
++ }
+
+ /**
+ * Returns a list of the tables in the database.