尝试在表中插入字符串时出现以下错误。
错误:ER_TRUNCATED_WRONG_VALUE_FOR_FIELD:不正确的字符串值:第1行“ preview_text”列的“ \ xF0 \ x9F \ x98 \ x8D ...”
\ xF0 \ x9F \ x98 \ x8D是笑脸表情符号
从以前的堆栈溢出问题中了解到,我需要将排序规则设置为utf8mb4_unicode_ci
,但默认情况下还是这样。
我还应该更改什么?
答案 0 :(得分:1)
连接后,您应该define the charset如下:
SET NAMES 'utf8mb4';
通常,您将在客户端中选择一个选项进行设置(比查询更优雅),例如: NodeJS:
mysql.createPool({
...
charset : 'utf8mb4'
});
还有PHP的MySQLi
$mysqli->set_charset("utf8mb4");