在 Node.js 或 MySQL 客户端中将编码字符集设置为 utf8mb4?

问题描述 投票:0回答:1

当我们想要将带有表情符号的字符串存储到 MySQL 数据库时,我们会收到此错误:

参数不可能从排序规则 utf8_general_ci 转换为 utf8mb4_unicode_520_ci

有人可以向我解释为什么 Node 将其作为

utf8
发送到 MySQL 以及我如何声明我们有
utf8mb4
排序规则吗?我在数据库端尝试了几种不同的编码,但我认为缺少 Node.js 或驱动程序配置。

后端基于 Express.js,在 lts-alpine docker 容器内的 Debian 系统上运行,请求由 React Native 应用程序发送。

谢谢,弗洛里安

mysql node.js express utf-8 character-encoding
1个回答
0
投票

创建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',
});

© www.soinside.com 2019 - 2024. All rights reserved.