2016-11-29 1 views
0

Je développe un bot de télégramme. Tout va bien, sauf le caractère unicode (emoji). Je veux dire, quand j'insère des choses dans la table, cela montre toujours le point d'interrogation s'il y a des emoji. (Je pense que la table ne reconnaît pas le personnage). enter image description hereSequelize MariaDB - Insérer un caractère emoji

Je l'ai fait quelques changements sur la base de données et les tables, et je me suis converti une partie de la configuration utf8mb4, voici le reference link

Voici la configuration de la table

enter image description here

Je l'ai fait la réparation et optimiser le tableau.

Voici mon modèle sequelize

enter image description here

J'ai besoin, parce que lorsque je récupère les données de la base de données, il affichera le emoji quand je passe à la salle de chat (pas les des points d'interrogation chose)

Merci les gars! Toute aide sera appréciée

EDIT

J'ai ajouté 2 lignes sur les options sequelize.js, et encore rien ne se passe

enter image description here

Répondre

1

Lorsque vous vous connectez à db, ajoutez la charset option.

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

où le modifier mec? – Webster

+0

@Webster Je viens d'éditer ma réponse. Vous devriez trouver où vous obtenez la connexion db et le modifier. – solarhell

+0

@solarshell, voir mon post édité ci-dessus, j'ai ajouté ces lignes, ne fonctionne toujours pas – Webster

0

vous pouvez également ajouter charset sur la définition de la table pour activer le support Emoji dans ce tableau, tout en définissant la table ajouter CHAR comme celui-ci

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

0

La solution que je trouve est de mettre le suivant sur la première ligne de mon modèle d'utilisateur:

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