【发布时间】:2014-05-24 04:46:36
【问题描述】:
我有一个 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 格式正确转发,只是当它被发送到数据库进行存储时,它被存储为像“??? ??????”例如。
乱码行示例:
有谁知道可能出了什么问题?
提前致谢。
【问题讨论】: