Questo articolo descrive come convertire il set di caratteri di un database MySQL nella codifica UTF-8 (nota anche come Unicode). Il set di codifica dei caratteri UTF-8 supporta molti alfabeti e caratteri per un'ampia varietà di lingue.
Sebbene MySQL supporti il set di codifica dei caratteri UTF-8, spesso non viene utilizzato come set di caratteri predefinito durante la creazione di database e tabelle. Di conseguenza, molti database utilizzano il set di caratteri latini, che può essere limitante a seconda dell'applicazione.
Determinazione del set di codifica dei caratteri corrente
Per determinare quale set di codifica dei caratteri sta attualmente utilizzando un database o una tabella MySQL:
- Accedi al tuo account A2 Hosting SSH.
- Alla riga di comando, digita il seguente comando, sostituendo username con il tuo nome utente:
mysql -u username -p
- Al prompt Immettere la password, digitare la password. Quando si digita la password corretta, viene visualizzato il prompt mysql>.
-
Per visualizzare il set di codifica dei caratteri corrente per un particolare database, digitare il comando seguente al prompt mysql>. Sostituisci dbname con il nome del database:
SELECT default_character_set_name FROM information_schema.SCHEMATA S WHERE schema_name = "dbname";
-
Per visualizzare la codifica dei caratteri corrente impostata per una particolare tabella in un database, digitare il comando seguente al prompt mysql>. Sostituisci dbname con il nome del database e tablename con il nome della tabella:
SELECT CCSA.character_set_name FROM information_schema.`TABLES` T,information_schema.`COLLATION_CHARACTER_SET_APPLICABILITY` CCSA WHERE CCSA.collation_name = T.table_collation AND T.table_schema = "dbname" AND T.table_name = "tablename";
- Per uscire da mysql programma, digita \q al prompt di mysql>.
Conversione della codifica dei caratteri impostata in UTF-8
Assicurati di eseguire il backup del database prima di iniziare questa procedura! Puoi eseguire il backup di un database MySQL utilizzando cPanel, phpMyAdmin o mysqldump programma.Per convertire la codifica dei caratteri impostata su UTF-8:
- Accedi al tuo account A2 Hosting SSH.
- Crea un file di testo denominato .my.cnf . Per fare ciò, puoi utilizzare un editor di testo come Vim o Nano. Questa procedura mostra come utilizzare Nano. Nella riga di comando, digita il seguente comando:
nano .my.cnf
-
Aggiungi le seguenti righe al file, sostituendo username con il tuo nome utente e password con la tua password (assicurati che la password sia racchiusa tra virgolette):
[client] user=username password="password"
- Quando le modifiche sono complete, premi Ctrl+X, digita y per salvare il file, quindi premi Invio.
-
Per modificare la codifica del set di caratteri in UTF-8 per tutte le tabelle nel database specificato, digitare il comando seguente nella riga di comando. Sostituisci dbname con il nome del database:
mysql --database=dbname -B -N -e "SHOW TABLES" | awk '{print "SET foreign_key_checks = 0; ALTER TABLE", $1, "CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci; SET foreign_key_checks = 1; "}' | mysql --database=dbname
-
Al termine del comando, digita il comando seguente per avviare mysql programma:
mysql
-
Per modificare la codifica del set di caratteri in UTF-8 per il database stesso, digitare il comando seguente al prompt mysql>. Sostituisci dbname con il nome del database:
ALTER DATABASE dbname CHARACTER SET utf8 COLLATE utf8_general_ci;
- Per uscire da mysql programma, digita \q al prompt di mysql>.
-
Per eliminare il .my.cnf file, digita il seguente comando nella riga di comando:
rm .my.cnf
- Per verificare che la codifica del set di caratteri sia ora impostata su UTF-8, segui i passaggi della procedura Determinare il set di codifica dei caratteri corrente sopra.
Maggiori informazioni
Per ulteriori informazioni su UTF-8 e Unicode, visitare http://en.wikipedia.org/wiki/UTF-8.