Mysql utf8mb4连接字符串(Node.js,无服务器Mysql包)
我已经将我的Mysql默认设置更改为utf8mb4,但是emojis仍然被Mysql拒绝Mysql utf8mb4连接字符串(Node.js,无服务器Mysql包),mysql,connection-string,utf8mb4,Mysql,Connection String,Utf8mb4,我已经将我的Mysql默认设置更改为utf8mb4,但是emojis仍然被Mysql拒绝 Error: ER_TRUNCATED_WRONG_VALUE_FOR_FIELD: Incorrect string value: '\xF0\x9F\x92\xA9</...' 但是,我不能完全确定我的连接字符串应该是什么,以支持utf8mb4,并能够将emojis保存到数据库中。我的字符串应该是什么样子?结果表明,包本身支持为字符集添加设置。因此,我将配置更改为: const db = mys
Error: ER_TRUNCATED_WRONG_VALUE_FOR_FIELD: Incorrect string value: '\xF0\x9F\x92\xA9</...'
但是,我不能完全确定我的连接字符串应该是什么,以支持utf8mb4,并能够将emojis保存到数据库中。我的字符串应该是什么样子?结果表明,包本身支持为字符集添加设置。因此,我将配置更改为:
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发送没有错误的表情符号了。你说的“拒绝”是什么意思?@NicoHaase Mysql的响应是
错误:ER_TRUNCATED_Error_VALUE_FOR_FIELD:Error string VALUE:'\xF0\x9F\x92\xA9(我编辑了OP以使其更清楚,很抱歉混淆)你有没有试过用utf8mb4而不是BIG5\u CHINESE\u CI
?这个答案对于将来在谷歌搜索的人来说会很困惑。您是想说库不支持将连接编码设置为字符串吗?这两种格式的格式似乎是相同的?不知道为什么会混淆。serverlessmysql
和mysql
都允许设置一个配置来指定连接字符集。这两个包还支持将连接编码为字符串,我认为需要使用字符串来指定字符集,但在config中设置它要容易得多。
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'
}
});