Dan*_*boy 16 mysql pdo character-encoding
初始化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);
Run Code Online (Sandbox Code Playgroud)
但是,如果dsn是这样的:
$dsn = 'mysql:host=example.com;dbname=testdb;port=3306;charset=UTF8MB4';
Run Code Online (Sandbox Code Playgroud)
如果mysql数据库有一个默认的字符集UTF8MB4.
Nic*_*ick 36
您应该将utf8mb4用于PDO和数据库结构.
$dsn='mysql:host=example.com;dbname=testdb;port=3306;charset=utf8mb4';
Run Code Online (Sandbox Code Playgroud)
如果可能,请不要忘记设置页面的字符编码.PHP示例:
mb_internal_encoding('UTF-8');
mb_http_output('UTF-8');
Run Code Online (Sandbox Code Playgroud)