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

Come risolvere il problema di codifica dei caratteri MySQL?

Il problema di codifica dei caratteri MySQL è dove il tuo database MySQL causa la visualizzazione errata dei caratteri UTF8 (come å, ä e ö). Questo perché per impostazione predefinita, MySQL utilizza il set di caratteri latin1. Questo problema è diventato importante a causa della natura globale dei contenuti web in questi giorni. Puoi risolverlo impostando la codifica dei caratteri MySQL su UTF8. Questo può essere fatto in diversi modi.

  1. Esegui una query "SET NAMES 'utf8'" all'inizio di ogni connessione:questo costringerà MySQL a utilizzare UTF8 per tutta la durata di quella connessione. Questa è una buona opzione se non hai accesso al file my.cnf (linux/mac) / my.ini (windows).
  2. Trova e modifica il file my.cnf (linux/mac) / my.ini (windows) sul tuo database server. Aggiungi le seguenti righe a mysqld sezione:[mysqld] default-character-set=utf8 skip-character-set-client-handshake Ora, se riavvii il server MySQL, la codifica dei caratteri MySQL dovrebbe essere UTF8 per impostazione predefinita
  3. E se avessi già un database? Come convertire il suo contenuto in UTF8? È possibile utilizzare le seguenti 3 query. Sostituisci DATABASE_NAME, TABLE_NAME e FIELD_NAME con i tuoi valori. altera la tabella TABLE_NAME modifica FIELD_NAME blob; altera il database DATABASE_NAME charset=utf8; altera la tabella TABLE_NAME modifica FIELD_NAME varchar(255) set di caratteri utf8; Converti il ​​campo in BLOB, è un tipo di campo binario. Quindi cambiamo il set di caratteri del database in utf8. Infine riconvertiamo il nostro campo in testo o varchar.

Puoi controllare la codifica dei tuoi caratteri MySQL con la seguente query.

Codifica dei caratteri MySQL predefinita

mysql> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | latin1                     |
| character_set_connection | latin1                     |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | latin1                     |
| character_set_server     | latin1                     |
| character_set_system     | latin1                     |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

Codifica dei caratteri MySQL richiesta

mysql> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

Dovrai anche assicurarti che il tuo framework di programmazione come Django, Code Igniter, ecc. utilizzi la codifica UTF8.