MySQL 处理 utf8mb4_unicode_ci 的 unicode 文本
MySQL handle unicode text for utf8mb4_unicode_ci
尝试将字符串插入 table 时出现以下错误。
Error: ER_TRUNCATED_WRONG_VALUE_FOR_FIELD: Incorrect string value: '\xF0\x9F\x98\x8D...' for column 'preview_text' at row 1
\xF0\x9F\x98\x8D是笑脸表情
正如我从以前的 Whosebug 问题中了解到的,我需要将排序规则设置为 utf8mb4_unicode_ci
,但默认情况下是这样,而且仍然如此。
我还应该改变什么?
连接后你应该define the charset像这样:
SET NAMES 'utf8mb4';
通常你会在你的客户端中有一个选项来设置它(比查询更优雅),例如:
节点JS:
mysql.createPool({
...
charset : 'utf8mb4'
});
和PHP的MySQLi
$mysqli->set_charset("utf8mb4");
尝试将字符串插入 table 时出现以下错误。
Error: ER_TRUNCATED_WRONG_VALUE_FOR_FIELD: Incorrect string value: '\xF0\x9F\x98\x8D...' for column 'preview_text' at row 1
\xF0\x9F\x98\x8D是笑脸表情
正如我从以前的 Whosebug 问题中了解到的,我需要将排序规则设置为 utf8mb4_unicode_ci
,但默认情况下是这样,而且仍然如此。
我还应该改变什么?
连接后你应该define the charset像这样:
SET NAMES 'utf8mb4';
通常你会在你的客户端中有一个选项来设置它(比查询更优雅),例如: 节点JS:
mysql.createPool({
...
charset : 'utf8mb4'
});
和PHP的MySQLi
$mysqli->set_charset("utf8mb4");