Mysql
 sql >> Database >  >> RDS >> Mysql

Come fare in modo che MySQL gestisca correttamente UTF-8

Aggiornamento:

Risposta breve:dovresti usare quasi sempre utf8mb4 set di caratteri e utf8mb4_unicode_ci confronto.

Per modificare il database:

ALTER DATABASE dbname CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Vedi:

Risposta originale:

MySQL 4.1 e versioni successive hanno un set di caratteri predefinito di UTF-8. Puoi verificarlo nel tuo my.cnf file, ricordati di impostare entrambi client e server (default-character-set e character-set-server ).

Se hai dati esistenti che desideri convertire in UTF-8, scarica il tuo database e importalo di nuovo come UTF-8 assicurandoti:

  • usa SET NAMES utf8 prima di interrogare/inserire nel database
  • usa DEFAULT CHARSET=utf8 durante la creazione di nuove tabelle
  • a questo punto il tuo client e server MySQL dovrebbero essere in UTF-8 (vedi my.cnf ). ricorda che anche le lingue che usi (come PHP) devono essere UTF-8. Alcune versioni di PHP utilizzeranno la propria libreria client MySQL, che potrebbe non essere compatibile con UTF-8.

Se vuoi migrare i dati esistenti ricordati di eseguire prima il backup! Un sacco di strani tagli di dati possono verificarsi quando le cose non vanno come previsto!

Alcune risorse: