Jestem nowy w MySQL i chciałbym wiedzieć:
Jak mogę utworzyć bazę danych za pomocą zestawu znaków, utf-8
tak jak to zrobiłem w Navicat?
create mydatabase;
... wydaje się używać jakiegoś domyślnego zestawu znaków.
Jestem nowy w MySQL i chciałbym wiedzieć:
Jak mogę utworzyć bazę danych za pomocą zestawu znaków, utf-8
tak jak to zrobiłem w Navicat?
create mydatabase;
... wydaje się używać jakiegoś domyślnego zestawu znaków.
Odpowiedzi:
Uwaga: Następujące jest teraz uważane za lepszą praktykę (patrz odpowiedź bikeman868 ):
CREATE DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Oryginalna odpowiedź:
Spróbuj tego:
CREATE DATABASE mydatabase CHARACTER SET utf8 COLLATE utf8_general_ci;
Aby uzyskać więcej informacji, zobacz Zestaw znaków bazy danych i układanie w Podręczniku MySQL.
COLLATE utf8mb4_unicode_520_ci
lub utf8mb4_0900_ai_ci
lub nawet narodowe specyficzne, np utf8mb4_vi_0900_ai_ci
. W przypadku MariaDB 10.2.2+ masz zestawienia „nopad” utf8mb4_unicode_520_nopad_ci
. dev.mysql.com/doc/refman/8.0/en/charset-unicode-sets.html
utf8mb4_0900_ai_ci
. Wydaje się, że jest lepszy niżutf8mb4_unicode_ci
Powinieneś użyć:
CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Pamiętaj, że utf8_general_ci
nie jest już zalecaną najlepszą praktyką. Zobacz powiązane pytania i odpowiedzi:
Jaka jest różnica między utf8_general_ci i utf8_unicode_ci w przypadku przepełnienia stosu.
utf8mb4_0900_ai_ci
. Wydaje się, że jest lepszy niżutf8mb4_unicode_ci
utf8mb4
jest tym, co nazywają reszta z nasutf8
. Więc o coutf8
pytasz MySQL ? Jest to ograniczona wersja utf-8, która działa tylko dla podzbioru znaków, ale zawodzi w przypadku takich rzeczy jak emoji. Później dodali, żeutf8mb4
jest to poprawna implementacja, ale MySQL musi pozostać kompatybilny z poprzednimi błędami, dlatego dodano nowe kodowanie zamiast naprawiać stare. Wszystkie nowe bazy danych powinny korzystaćutf8mb4
.