Je suis nouveau sur MySQL et j'aimerais savoir:
Comment créer une base de données avec charset, utf-8
comme dans navicat?
create mydatabase;
... semble utiliser une sorte de jeu de caractères par défaut.
Remarque: Ce qui suit est maintenant considéré comme une meilleure pratique (voir la réponse de bikeman868 ):
CREATE DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Réponse originale:
Essaye ça:
CREATE DATABASE mydatabase CHARACTER SET utf8 COLLATE utf8_general_ci;
Pour plus d'informations, consultez Jeu de caractères de la base de données et classement dans le Manuel de référence MySQL.
utf8mb4
est ce que le reste de nous appelleutf8
. Alors, qu'est-ce que MySQLutf8
vous demandez? C'est une version limitée d'utf-8 qui ne fonctionne que pour un sous-ensemble de caractères mais échoue pour des choses comme emoji. Plus tard, ils ont ajoutéutf8mb4
quelle est la bonne implémentation, mais MySQL doit rester rétrocompatible avec ses anciennes erreurs. C’est pourquoi il a ajouté un nouveau codage au lieu de corriger l’ancien. Toutes les nouvelles bases de données doivent utiliserutf8mb4
.COLLATE utf8mb4_unicode_520_ci
ouutf8mb4_0900_ai_ci
ou même spécifique locale, par exemple:utf8mb4_vi_0900_ai_ci
. Pour MariaDB 10.2.2+, vous avez des classements "nopad"utf8mb4_unicode_520_nopad_ci
. dev.mysql.com/doc/refman/8.0/fr/charset-unicode-sets.htmlutf8mb4_0900_ai_ci
. Semble est mieux queutf8mb4_unicode_ci
Tu devrais utiliser:
Notez que ce
utf8_general_ci
n'est plus la meilleure pratique recommandée. Voir le Q & A connexe:Quelle est la différence entre utf8_general_ci et utf8_unicode_ci sur Stack Overflow.
la source
utf8mb4_0900_ai_ci
. Semble est mieux queutf8mb4_unicode_ci