Yii2 dblib 连接字符集

Yii2 dblib connection charset

我可以连接到数据库,但字符集错误。它是微软服务器数据库(mssql)。

<?php return array (
  'class' => 'yii\db\Connection',
  'dsn' => 'dblib:host=*******;port=1433;dbname=*******;charset=utf8',
  'username' => '**********',
  'password' => '**********',
  'charset'  => 'utf8',
); ?>

如果我像这样使用 mb_convert_encoding,那么我会得到正确的字符,但我怎样才能正确连接?

print_r(mb_convert_encoding($dbString, 'utf-8', "iso-8859-1"));

首先在服务器上检查是否安装了驱动php_mssqlphp_pdo_mssql

检查 phpinfo() 的输出以确保...

 'db'=>array(
        'connectionString' => 'dblib:host=localhost;dbname=test123',
        'emulatePrepare' => false, // comment this if it cause any issue 
        'username' => 'XXXX',
        'password' => 'XXXXX',
        'charset' => 'utf8',
                ),

或其他

可能问题出在 sql 服务器本身,如果您使用 sqlserver 2000,其中 sqlsrv 驱动程序可能不兼容,请检查。如果不迁移到 sqlserver 2008 或任何可兼容的版本可能会顺利运行。