Mysql utf8mb4连接字符串(Node.js, serverless-mysql包)

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

我已经把我的Mysql默认值改成了utf8mb4,然而emojis仍然被mysql拒绝。

Error: ER_TRUNCATED_WRONG_VALUE_FOR_FIELD: Incorrect string value: '\xF0\x9F\x92\xA9</...'

我想这可能是因为我的连接字符串。

我在连接和发送查询到Mysql的时候,使用的是 无服务器-mysql 包,它是基于 mysql包.

我想我应该可以创建一个这样的连接。

var connection = mysql.createConnection('mysql://user:pass@host/db?debug=true&charset=BIG5_CHINESE_CI&timezone=-0700');

但我不太确定我的连接字符串应该是什么,以支持 utf8mb4 并能够保存表情符号到我的数据库中。我的字符串应该是什么样子的?

mysql connection-string utf8mb4
1个回答
2
投票

原来软件包本身就支持添加字符集的设置。于是我把我的配置改成了。

const db = mysql({
  config: {
    host: process.env.DB_HOST,
    database: process.env.DB_NAME,
    user: process.env.DB_USER,
    password: process.env.DB_PASS,
    charset: 'utf8mb4'
  }
});

现在我可以把表情符号发送到Mysql而不出错了。

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