当我们想要将带有表情符号的字符串存储到 MySQL 数据库时,我们会收到此错误:
参数不可能从排序规则 utf8_general_ci 转换为 utf8mb4_unicode_520_ci
有人可以向我解释为什么 Node 将其作为
utf8
发送到 MySQL 以及我如何声明我们有 utf8mb4
排序规则吗?我在数据库端尝试了几种不同的编码,但我认为缺少 Node.js 或驱动程序配置。
后端基于 Express.js,在 lts-alpine docker 容器内的 Debian 系统上运行,请求由 React Native 应用程序发送。
谢谢,弗洛里安
创建MySQL客户端时可以添加字符集
const mysql = require('mysql');
require('dotenv').config();
const connection = mysql.createConnection({
host: process.env.host,
user: process.env.user,
port: process.env.port,
password: process.env.password,
database: process.env.database,
charset: 'utf8mb4',
});