NodeJS-MySQL和Unicode字符串被修饰

NodeJS-MySQL和Unicode字符串被修饰,mysql,node.js,unicode,Mysql,Node.js,Unicode,我有一个NodeJS服务器作为消息转发服务运行,我注意到尽管它可以完美地处理英文(ASCII)文本,但它无法将UTF-8编码的字符串插入MySQL数据库(使用NodeJS-MySQL驱动程序) 我尝试过的事情: conn.query("INSERT INTO messages(content) VALUES("+mysql.escape(content)+")", function(err, result) { // ... } conn.query("INSERT INTO mess

我有一个NodeJS服务器作为消息转发服务运行,我注意到尽管它可以完美地处理英文(ASCII)文本,但它无法将UTF-8编码的字符串插入MySQL数据库(使用NodeJS-MySQL驱动程序)

我尝试过的事情:

conn.query("INSERT INTO messages(content) VALUES("+mysql.escape(content)+")", function(err, result) {
    // ...
}

conn.query("INSERT INTO messages(content) VALUES(?)", [content], function(err, result) {
    // ...
}
这两种方法都不起作用,它们最终会在数据库中插入诸如“??”之类的字符串

该表使用latin1_swedish_ci作为默认排序规则,使用InnoDB作为引擎

这不是一个数据库(MySQL)问题,因为我在PHP中有相同的代码,并且工作正常(使用PHP PDO)

这也不是NodeJS(v8)的问题,因为消息是以UTF-8格式正确转发的,只是当它被发送到要存储的数据库时,它被存储为一个字符串,例如“??”之类的字符串

乱码行的示例:

有人知道会出什么问题吗


提前感谢。

latin1_swedish_ci数据库表无法以本机方式处理UTF-8。它可以以编码格式存储UTF-8,这就是PHP-PDO的工作方式。

将排序规则更改为utf8\u general\u ci,它仍然显示??????当我尝试插入unicode时。在插入时,sql接口的默认字符编码是什么?[链接]是的。看起来数据库和服务器字符集是拉丁文1?是的,我刚把它改成这个,它仍然不起作用,虽然现在它没有插入什么,它什么也没有插入(它的空白):还有字符集服务器