diff -wruN typo3_src-8.6.0_orig_install_step_2/typo3/sysext/install/Classes/Controller/Action/Step/DatabaseSelect.php typo3_src-8.6.0/typo3/sysext/install/Classes/Controller/Action/Step/DatabaseSelect.php --- typo3_src-8.6.0_orig_install_step_2/typo3/sysext/install/Classes/Controller/Action/Step/DatabaseSelect.php 2017-02-14 09:33:27.000000000 -0500 +++ typo3_src-8.6.0/typo3/sysext/install/Classes/Controller/Action/Step/DatabaseSelect.php 2017-02-19 00:34:00.941079700 -0500 @@ -174,6 +174,25 @@ $connection = GeneralUtility::makeInstance(ConnectionPool::class) ->getConnectionByName(ConnectionPool::DEFAULT_CONNECTION_NAME); $queryBuilder = $connection->createQueryBuilder(); + + if ($connection->getDatabasePlatform() instanceof \Doctrine\DBAL\Platforms\OraclePlatform) { + $defaultDatabaseCharset = $queryBuilder->select('VALUE') + ->from('NLS_DATABASE_PARAMETERS') + ->where( + $queryBuilder->expr()->eq( + 'PARAMETER', + $queryBuilder->createNamedParameter('NLS_CHARACTERSET', \PDO::PARAM_STR) + ) + ) + ->setMaxResults(1) + ->execute() + ->fetchColumn(); + + // Oracle UTF-8 is based on Unicode 3.0. AL32UTF8 has updated Unicode revisions (6.1 in Oracle 12c) + if ($defaultDatabaseCharset) { + $defaultDatabaseCharset = 'utf8'; + } + } else { $defaultDatabaseCharset = $queryBuilder->select('DEFAULT_CHARACTER_SET_NAME') ->from('information_schema.SCHEMATA') ->where( @@ -185,6 +204,7 @@ ->setMaxResults(1) ->execute() ->fetchColumn(); + } return (string)$defaultDatabaseCharset; }