【问题标题】:Sequelize MariaDB - Insert emoji characterSequelize MariaDB - 插入表情符号
【发布时间】:2017-04-12 23:40:27
【问题描述】:

我正在开发一个电报机器人。一切都很好,除了 unicode 字符(表情符号)。我的意思是,当我在表格中插入东西时,如果有任何表情符号,它总是显示问号。 (我认为该表无法识别该字符)。

我对数据库和表进行了一些更改,并将一些配置转换为utf8mb4,这里是reference link

这是表格设置

我做了repairoptimize表。

这是我的续集模型

我需要这个,因为当我从数据库中检索数据时,当我将它传递给房间聊天时它会显示表情符号(不是 问号的东西

谢谢各位! 任何帮助将不胜感激

编辑

我在 sequelize.js 的选项上加了 2 行,还是没有任何反应

【问题讨论】:

    标签: mysql node.js sequelize.js mariadb utf


    【解决方案1】:

    当你连接到 db 时,添加charset 选项。

    var sequelize = new Sequelize('database', 'username', 'password', {
      host: 'localhost',
      dialect: 'mysql', //maybe modify this to mariadb
        dialectOptions: {
          charset: 'utf8mb4'
        },
    });
    

    【讨论】:

    • 老兄在哪里修改?
    • @Webster 我刚刚编辑了我的答案。您应该找到获得数据库连接的位置并对其进行修改。
    • @solarshell,看我上面编辑的帖子,我添加了那些行,仍然没有工作
    • 您可能需要在表定义和连接中设置charset
    【解决方案2】:

    您还可以在表定义中添加字符集以在该表中启用表情符号字符支持,同时定义表添加字符集像这样

    sequelize.define('roomDetails',{firstName: sequelize.STRING},{charset: 'utf8mb4'})

    【讨论】:

      【解决方案3】:

      我找到的解决方案是将以下内容放在我的用户模型的第一行:

      // make sure db/client/connection can support emoji
      sequelize.query("SET NAMES utf8mb4;");
      // confirm settings
      sequelize.query("SHOW VARIABLES LIKE 'character_set_%'").then(function(data) {
           console.log(data);
      });
      

      【讨论】:

        猜你喜欢
        • 2018-06-22
        • 2018-03-03
        • 1970-01-01
        • 2018-12-28
        • 2015-10-18
        • 1970-01-01
        • 2020-05-04
        • 1970-01-01
        • 2019-08-21
        相关资源
        最近更新 更多