Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql utf8mb4连接字符串(Node.js,无服务器Mysql包)_Mysql_Connection String_Utf8mb4 - Fatal编程技术网

Mysql utf8mb4连接字符串(Node.js,无服务器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

我已经将我的Mysql默认设置更改为utf8mb4,但是emojis仍然被Mysql拒绝

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