2016-11-29 53 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); 
});