2016-11-29 69 views
0

我正在开发一个电报机器人。除了unicode字符(表情符号),一切都可以。我的意思是,当我在桌子上插入东西时,如果有任何表情符号,它总会显示问号。 (我认为桌子不识别角色)。 enter image description hereSequelize MariaDB - 插入表情符号

我做了对数据库和表的一些变化,我转换了一些配置utf8mb4的,这里的reference link

这里的表设置

enter image description here

我做了修复优化表。

这里是我的sequelize模型

enter image description here

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

谢谢你们! 任何帮助将不胜感激

编辑

我添加的选项2线对sequelize.js,仍然没有发生

enter image description here

回答

1

当您连接到数据库,添加charset选项。

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

在哪里修改它的家伙? – Webster

+0

@Webster我刚刚编辑了我的答案。你应该找到你的数据库连接并修改它。 – solarhell

+0

@solarshell,看到我上面编辑的帖子,我添加了那些行,仍然没有工作 – Webster

0

,你还可以在表定义添加字符集,以使该表中的表情符号的支持,同时定义表中添加字符集这样

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

0

我找到解决的办法是把以下在我的用户模型的第一行:

// 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); 
});