我可以使用php pdo在同一个托管数据库中存储表情符号,但我无法使用node js实现。
我正在使用下面的代码连接mysql和Node js。但是当我尝试保存带有表情符号的文本时,表情符号会以问号的形式保存到数据库中。
var con = mysql.createConnection({
host: '127.0.0.1',
port: 3306,
user: 'db_user',
password: 'db_password',
database: 'db_name',
charset: 'utf8mb4',
});
con.connect(
function (err) {
if (err) {
console.log("ERROR: ");
throw err;
} else {
con.query('INSERT INTO messages (message_from, message_to,message) VALUES (?, ?, ?);', [message_from, message_to,message_text],
function (err, results, fields) {
if (err) throw err;
else console.log('Inserted ' + results.affectedRows + ' row(s).');
});
con.end(
function (err) {
if (err) throw err;
});
}
});
我也尝试过
collation: "utf8mb4_general_ci",
但无论如何都无法工作。
编辑:表格和数据类型也是utf8mb4
utf8mb4_general_ci
。我曾经遇到过同样的问题,将列排序规则更改为utf8mb4_general_ci
后,问题似乎得到了解决。 - Salvino D'sa