Créer une base de données MySQL avec charset UTF-8


142

Je suis nouveau sur MySQL et j'aimerais savoir:

Comment créer une base de données avec charset, utf-8comme dans navicat?

create mydatabase;

... semble utiliser une sorte de jeu de caractères par défaut.

Réponses:


233

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.


1
MySQL utf8mb4est ce que le reste de nous appelle utf8. Alors, qu'est-ce que MySQL utf8vous 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é utf8mb4quelle 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 utiliser utf8mb4.
Stijn de Witt

Si vous voulez aller dans le trou du lapin: COLLATE utf8mb4_unicode_520_ciou utf8mb4_0900_ai_ciou 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.html
Frank Forte

@shellbye Pensez à mettre à jour votre réponse pour faire mention de utf8mb4_0900_ai_ci. Semble est mieux queutf8mb4_unicode_ci
Manuel Jordan

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.