当用户发送包含表情符号的消息时(准确地,当消息存储在MySql数据库中时),将出现以下错误:
PDOException:SQLSTATE [HY000]:常规错误:1366不正确的字符串 值:“ \ xF0 \ x9F \ x8D \ xB8!...”表示...中第1行的“邮件”列
我已经检查了以下问题:
之前的所有问题都提出了相同的答案:将表更改为
utf8mb4
排版。这就是我所做的:我将表和相关列更改为utf8mb4_unicode_ci
。
但是问题仍然出现。有什么想法吗?
答案 0 :(得分:1)
将列和表设置为utf8mb4很好,但是需要其他设置才能使工作顺利进行:
PDO连接:
$dsn = 'mysql:host=my_ip;dbname=my_db;charset=utf8mb4';
在连接后和运行查询之前要运行的SQL命令:
$conn->exec("set names utf8mb4");