经过一番研究,我将字段和表的排序规则转换为utf8mb4_bin
。
如果我直接通过phpmyadmin将表情符号粘贴到该字段中,或者如果我在命令行中编写查询,那么它可以正常工作。
问题出在网站上。
这是我的PDO配置:
$driver_options = [
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8",PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_OBJ,PDO::MYSQL_ATTR_FOUND_ROWS => true
];
$db = new PDO('mysql:host='.$host.';dbname='.$database.';charset=utf8mb4;collation=utf8mb4_unicode_ci',$username,$password,$driver_options);
通过我的网站进行操作,表情符号/表情符号另存为????
。
要正确保存它们,我还需要做什么?
谢谢
编辑
解决了。如果您在SET NAMES utf8
中使用options
,它将覆盖Dsn中的charset=utf8mb4
,因此在我的情况下,它最终是utf8
而不是utf8mb4
>