【问题标题】:NodeJS UTF8 String appears as ?? instead of emojiNodeJS UTF8 字符串显示为 ??而不是表情符号
【发布时间】:2017-02-21 06:16:19
【问题描述】:

我在 MySQL 行中有一个值,上面写着“正在测试”并且有一个竖起大拇指的表情符号:

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

如何让表情符号在 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)});
                            });
                        }
                    });

【问题讨论】:

    标签: mysql node.js emoji


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2016-10-05
      • 2020-06-23
      • 2021-11-07
      • 2019-05-20
      • 2021-10-18
      • 1970-01-01
      • 2019-05-11
      • 2019-04-22
      • 2020-12-07
      相关资源
      最近更新 更多