Я новичок в MySQL, и я хотел бы знать:
Как я могу создать базу данных с utf-8
набором символов, как я это сделал в Navicat?
create mydatabase;
... кажется, использует какую-то кодировку по умолчанию.
Я новичок в MySQL, и я хотел бы знать:
Как я могу создать базу данных с utf-8
набором символов, как я это сделал в Navicat?
create mydatabase;
... кажется, использует какую-то кодировку по умолчанию.
Ответы:
Примечание: следующее теперь считается лучшей практикой (см . Ответ bikeman868 ):
CREATE DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Оригинальный ответ:
Попробуй это:
CREATE DATABASE mydatabase CHARACTER SET utf8 COLLATE utf8_general_ci;
Для получения дополнительной информации см. Набор символов базы данных и сопоставление в Справочном руководстве MySQL.
COLLATE utf8mb4_unicode_520_ci
или utf8mb4_0900_ai_ci
или даже локаль конкретные, например: utf8mb4_vi_0900_ai_ci
. Для MariaDB 10.2.2+ у вас есть сопоставления nopad utf8mb4_unicode_520_nopad_ci
. dev.mysql.com/doc/refman/8.0/ru/charset-unicode-sets.html
utf8mb4_0900_ai_ci
. Кажется, лучше, чемutf8mb4_unicode_ci
Вы должны использовать:
CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Обратите внимание, что utf8_general_ci
больше не рекомендуется лучшая практика. Смотрите соответствующие вопросы и ответы:
В чем разница между utf8_general_ci и utf8_unicode_ci в переполнении стека.
utf8mb4_0900_ai_ci
. Кажется, лучше, чемutf8mb4_unicode_ci
utf8mb4
это то, что остальные называютutf8
. Так что же такое MySQL,utf8
спросите вы? Это ограниченная версия utf-8, которая работает только для подмножества персонажей, но не подходит для таких вещей, как эмодзи. Позже они добавили,utf8mb4
что это правильная реализация, но MySQL должен оставаться обратно совместимым со своими старыми ошибками, поэтому добавил новую кодировку вместо исправления старой. Все новые базы данных следует использоватьutf8mb4
.