Sono nuovo di MySQL e vorrei sapere:
Come posso creare un database con charset utf-8
come ho fatto in navicat?
create mydatabase;
... sembra utilizzare una sorta di set di caratteri predefinito.
Sono nuovo di MySQL e vorrei sapere:
Come posso creare un database con charset utf-8
come ho fatto in navicat?
create mydatabase;
... sembra utilizzare una sorta di set di caratteri predefinito.
Risposte:
Nota: ora è considerata una pratica migliore (vedi la risposta di bikeman868 ):
CREATE DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Risposta originale:
Prova questo:
CREATE DATABASE mydatabase CHARACTER SET utf8 COLLATE utf8_general_ci;
Per ulteriori informazioni, consultare Set di caratteri del database e regole di confronto nel Manuale di riferimento di MySQL.
COLLATE utf8mb4_unicode_520_ci
o utf8mb4_0900_ai_ci
o addirittura locale specifica, ad esempio: utf8mb4_vi_0900_ai_ci
. Per MariaDB 10.2.2+, hai regole di confronto "nopad" utf8mb4_unicode_520_nopad_ci
. dev.mysql.com/doc/refman/8.0/en/charset-unicode-sets.html
utf8mb4_0900_ai_ci
. Sembra meglio diutf8mb4_unicode_ci
Dovresti usare:
CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Si noti che utf8_general_ci
non è più consigliata la migliore pratica. Vedi le relative domande e risposte:
Qual è la differenza tra utf8_general_ci e utf8_unicode_ci su Stack Overflow.
utf8mb4_0900_ai_ci
. Sembra meglio diutf8mb4_unicode_ci
utf8mb4
è ciò che il resto di noi chiamautf8
. Allora, cosautf8
chiedi a MySQL ? È una versione limitata di utf-8 che funziona solo per un sottoinsieme dei personaggi ma fallisce per cose come le emoji. Successivamente hanno aggiuntoutf8mb4
qual è l'implementazione corretta, ma MySQL deve rimanere retrocompatibile con i suoi vecchi errori, per questo motivo ha aggiunto una nuova codifica invece di correggere quella vecchia. Tutti i nuovi database dovrebbero usareutf8mb4
.