Index: branches/2.8.x/CHANGELOG
===================================================================
--- branches/2.8.x/CHANGELOG	(revision 2084)
+++ branches/2.8.x/CHANGELOG	(revision 2085)
@@ -11,6 +11,8 @@
 ! = Update/Change
 ===============================================================================
 
+16 Jan-2014 Build 2085 Manuela v.d.Decken(DarkViper)
+! build DSN extended for PDO::MYSQL_ATTR_INIT_COMMAND = 'SET NAMES xx'
 16 Jan-2014 Build 2084 Manuela v.d.Decken(DarkViper)
 # modules/wysiwyg/upgrade copy-past mistake corrected
 15 Jan-2014 Build 2083 Manuela v.d.Decken(DarkViper)
Index: branches/2.8.x/wb/admin/interface/version.php
===================================================================
--- branches/2.8.x/wb/admin/interface/version.php	(revision 2084)
+++ branches/2.8.x/wb/admin/interface/version.php	(revision 2085)
@@ -51,5 +51,5 @@
 
 // check if defined to avoid errors during installation (redirect to admin panel fails if PHP error/warnings are enabled)
 if(!defined('VERSION')) define('VERSION', '2.8.4');
-if(!defined('REVISION')) define('REVISION', '2084');
+if(!defined('REVISION')) define('REVISION', '2085');
 if(!defined('SP')) define('SP', '');
Index: branches/2.8.x/wb/framework/initialize.php
===================================================================
--- branches/2.8.x/wb/framework/initialize.php	(revision 2084)
+++ branches/2.8.x/wb/framework/initialize.php	(revision 2085)
@@ -183,18 +183,29 @@
 		$db['name'] = isset($db['name']) ? $db['name'] : 'dummy';
 		$db['charset'] = isset($db['charset']) ? trim($db['charset']) : 'utf8';
 		$db['table_prefix'] = (isset($db['table_prefix']) ? $db['table_prefix'] : '');
+        if (isset($db['options']) && is_array($db['options'])) {
+            foreach ($db['options'] as $key=>$value) {
+                $aRetval['options'][constant($key)] = $value;
+            }
+        }
 		if(!defined('TABLE_PREFIX')) { define('TABLE_PREFIX', $db['table_prefix']); }
 		if($sDbConnectType == 'dsn') {
 		// build dsn to connect
-			$aRetval[0] = $db['type'].':dbname='.$db['name'].';host='.$db['host'].';'
-						. ($db['port'] != '' ? 'port='.(int)$db['port'].';' : '');
-			$aRetval[1] = array('CHARSET' => $db['charset'], 'TABLE_PREFIX' => $db['table_prefix']);
-			$aRetval[2] = array( 'user' => $db['user'], 'pass' => $db['pass']);
+            $aRetval['dsn']      = $db['type'].':dbname='.$db['name'].';host='.$db['host']
+						         . ($db['port'] != '' ? ';port='.(int)$db['port'] : '');
+            if ($db['charset'] == 'utf8') {
+                $aRetval['dsn'] .= ';charset=UTF8';
+                $aRetval['options'][constant('PDO::MYSQL_ATTR_INIT_COMMAND')]  = 'SET NAMES \'UTF8\'';
+            }
+            $aRetval['options']  = '';
+            $aRetval['user']     = $db['user'];
+            $aRetval['password'] = $db['pass'];
+            $aRetval['addons']   = array('CHARSET' => $db['charset'], 'TABLE_PREFIX' => $db['table_prefix']);
 		}else { 
 		// build url to connect
-			$aRetval[0] = $db['type'].'://'.$db['user'].':'.$db['pass'].'@'
-						. $db['host'].($db['port'] != '' ? ':'.$db['port'] : '').'/'.$db['name']
-						. '?Charset='.$db['charset'].'&TablePrefix='.$db['table_prefix'];
+            $aRetval['url'] = $db['type'].'://'.$db['user'].':'.$db['pass'].'@'
+						    . $db['host'].($db['port'] != '' ? ':'.$db['port'] : '').'/'.$db['name']
+						    . '?Charset='.$db['charset'].'&TablePrefix='.$db['table_prefix'];
 		}
 		return $aRetval;
 	}
@@ -256,9 +267,9 @@
 // Create global database instance ---
 	$oDb = $database = WbDatabase::getInstance();
 	if($sDbConnectType == 'dsn') {
-		$bTmp = $oDb->doConnect($aSqlData[0], $aSqlData[1]['user'], $aSqlData[1]['pass'], $aSqlData[2]);
+		$bTmp = $oDb->doConnect($aSqlData['dsn'], $aSqlData['user'], $aSqlData['password'], null, $aSqlData['addons']);
 	}else {
-		$bTmp = $oDb->doConnect($aSqlData[0]);
+		$bTmp = $oDb->doConnect($aSqlData['url']);
 	}
 // remove critical data from memory
 	unset($aSqlData, $aCfg);
