我在尝试将字符串插入表时遇到以下错误。
错误:ER_TRUNCATED_WRONG_VALUE_FOR_字段:不正确的字符串值:'\xF0\x9F\x98\x8D…'对于第1行的列'preview_text'
\xF0\x9F\x98\x8D是笑脸表情符号😍
正如我从前面的stackoverflow问题中了解到的,我需要将排序规则设置为utf8mb4_unicode_ci,但它在默认情况下仍然是这样。
mysql - MySQL处理utf8mb4_unicode_ci的Unicode文本-LMLPHP
我还应该改变什么?

最佳答案

连接后,您应该define the charset这样:

SET NAMES 'utf8mb4';

通常,您在客户机中有一个选项来设置它(比查询更优雅),例如:
节点:
mysql.createPool({
    ...
    charset : 'utf8mb4'
});

PHP的MySQLi
$mysqli->set_charset("utf8mb4");

关于mysql - MySQL处理utf8mb4_unicode_ci的Unicode文本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53751977/

10-11 07:52