MySQL处理utf8mb4_unicode_ci的Unicode文本

时间:2018-12-12 21:56:14

标签: mysql unicode emoji

尝试在表中插入字符串时出现以下错误。

  

错误:ER_TRUNCATED_WRONG_VALUE_FOR_FIELD:不正确的字符串值:第1行“ preview_text”列的“ \ xF0 \ x9F \ x98 \ x8D ...”

\ xF0 \ x9F \ x98 \ x8D是笑脸表情符号

从以前的堆栈溢出问题中了解到,我需要将排序规则设置为utf8mb4_unicode_ci,但默认情况下还是这样。

enter image description here

我还应该更改什么?

1 个答案:

答案 0 :(得分:1)

连接后,您应该define the charset如下:

SET NAMES 'utf8mb4';

通常,您将在客户端中选择一个选项进行设置(比查询更优雅),例如: NodeJS:

mysql.createPool({
    ...
    charset : 'utf8mb4'
});

还有PHP的MySQLi

$mysqli->set_charset("utf8mb4");