我已经把我的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 并能够保存表情符号到我的数据库中。我的字符串应该是什么样子的?
原来软件包本身就支持添加字符集的设置。于是我把我的配置改成了。
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而不出错了。