2017-06-12 1 views
5

J'essaie d'insérer des emoji dans un certain fichier dans ma table mysql. Je couru modifier la commande et a changé le classement à "utf8mb4_general_ci"Comment insérer des emoji dans MYSQL 5.5 et supérieur en utilisant Django ORM

ALTER TABLE XYZ MODIFY description VARCHAR(250) CHARACTER SET utf8mb4 
    COLLATE utf8mb4_general_ci; 

Détails de la table après requête ci-dessus:

+-------------+--------------+---------------+--------------------+ 
| Column  | Type   | Character Set | Collation   | 
+-------------+--------------+---------------+--------------------+ 
| description | varchar(250) | utf8mb4  | utf8mb4_general_ci | 
+-------------+--------------+---------------+--------------------+ 

Après cela, je courais la requête de mise à jour Description colonne avec des années emoji, chaque fois que je courais en dessous de la requête, l'emoji est remplacé par '?'. Mais quand j'imprime le résultat d'une requête de sélection pour le même identifiant, il affiche ''? ''. à la place d'emoji. Le résultat a été:

"a test with : ??" 

Effectuée modifications nécessaires dans le fichier modèle. S'il vous plaît accepter mes excuses pour ne pas le préciser, apprécierait toute avance dans cette affaire.

+0

Avez-vous essayé d'ajouter « Options »: { » charset »: « utf8mb4’ } dans la configuration de base de données django avec nom d'utilisateur et mot de passe? – Aniket

+0

Oui, je l'ai fait aussi. – Shrey

+0

Avez-vous essayé de changer les options /etc/mysql/my.cnf? – Satevg

Répondre

1
DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.mysql', 
     ... 
     'OPTIONS': { 
        'charset': 'utf8mb4', 
        'use_unicode': True, }, 
    }, 
} 

my.cnf:

[mysqld] 
character-set-server=utf8mb4 
default-collation=utf8mb4_unicode_ci 

[client] 
default-character-set=utf8mb4