NodeJS UTF8字符串显示为??而不是表情符号

时间:2017-02-20 22:11:07

标签: mysql node.js emoji

我在MySQL行中有一个值,表示"测试"并竖起大拇指表情符号:
enter image description here

但是当我从数据库中检索这个值时,我在控制台中得到了这个输出:

enter image description here

如何让表情符号在NodeJS中运行?

                    database.query({
                        sql: "SELECT * FROM messages ORDER BY timestamp LIMIT 250"
                    }, function(error, results) {
                        if (error) {
                            errorLog("MySQL error: " + error.code);
                        } else {
                            var messages = [];
                            results.forEach(function(result) {
                                console.log("pushing with msg " + result.message);
                                messages.push({userID: String(result.sender), name: String(result.senderName), message: String(result.message)});
                            });
                        }
                    });

1 个答案:

答案 0 :(得分:2)

在玩各种设置后找到解决方案。连接到MySQL服务器时,必须指定首选项charset: 'utf8mb4',如下所示:

var database = mysql.createConnection({
    host: 'localhost',
    user: 'account',
    password: '1234',
    database: 'database',
    charset: 'utf8mb4'
});