【问题标题】:when initializing PDO - should I do: charset=UTF8 or charset=UTF8MB4?初始化 PDO 时 - 我应该这样做:charset=UTF8 还是 charset=UTF8MB4?
【发布时间】:2015-10-18 01:07:13
【问题描述】:

初始化 PDO 时 - 我应该这样做:charset=UTF8 还是 charset=UTF8MB4 ?

这是我的初始化:

$dsn = 'mysql:host=example.com;dbname=testdb;port=3306;charset=UTF8';
$dbh = new \Pdo($dsn, 'username', 'pass');
$dbh->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
            

但是dsn应该是这样的:

$dsn = 'mysql:host=example.com;dbname=testdb;port=3306;charset=UTF8MB4';

如果 mysql 数据库有默认字符集 UTF8MB4。

【问题讨论】:

    标签: mysql pdo character-encoding


    【解决方案1】:

    您应该为 PDO 和您的数据库结构使用 utf8mb4

    $dsn='mysql:host=example.com;dbname=testdb;port=3306;charset=utf8mb4';
    

    如果可能,不要忘记设置页面的字符编码。 PHP 示例:

    mb_internal_encoding('UTF-8');
    mb_http_output('UTF-8');
    

    【讨论】:

      猜你喜欢
      • 2016-02-16
      • 2021-03-17
      • 1970-01-01
      • 2011-04-24
      • 1970-01-01
      • 2012-12-13
      • 1970-01-01
      • 2016-10-10
      • 2021-12-19
      相关资源
      最近更新 更多