Creare un database MySQL con charset UTF-8


142

Sono nuovo di MySQL e vorrei sapere:

Come posso creare un database con charset utf-8come ho fatto in navicat?

create mydatabase;

... sembra utilizzare una sorta di set di caratteri predefinito.

Risposte:


232

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.


1
MySQL utf8mb4è ciò che il resto di noi chiama utf8. Allora, cosa utf8chiedi 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 aggiunto utf8mb4qual è 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 usare utf8mb4.
Stijn de Witt,

Se si vuole andare nella tana del coniglio: COLLATE utf8mb4_unicode_520_cio utf8mb4_0900_ai_cio 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
Frank Forte

@shellbye Considera di aggiornare la tua risposta per menzionare utf8mb4_0900_ai_ci. Sembra meglio diutf8mb4_unicode_ci
Manuel Jordan,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.