Condividi
Come memorizzare qualsiasi carattere in MySql?
Nella mia tabella MySql ho una colonna di tipo 'varchar(30)'
, in questo campo andranno memorizzati insiemi di caratteri derivanti da diverse lingue: italiano, russo, cinese e così via, che character sets (insieme di caratteri) devo utilizzare?
In Corso
4
MySql
09-12-2018
1 Risposta
2449 Visite
0
Risposte ( 1 approvate )
Questo è un problema di codifica di caratteri, certi caratteri non possono essere rappresentati da alcuni tipi di charsets semplicemente perché non ci entrano, ad es. la vecchia tabella ASCII (esteso) può contenere massimo 256 caratteri, quindi tutti gli altri caratteri che non ricadono in questo insieme vengono erroneamente memorizzati (poiché non hanno una corrispondete mappatura in bit).
Per essere sicura di poter trattare (leggere e scrivere) con la giusta codifica qualsiasi carattere del mondo all'interno del tuo database (arabo, cinese, spagnolo, simboli strani, punteggiature e così via) devi usare la codifica UNICODE.
Accertati pertanto di settare nel tuo campo varchar la Collation utf-8 , meglio ancora se lo fai a livello d'intero database. Ovviamente tutto ha un prezzo, l'utf-8 occupa più spazio, ma se devi riferirti a tutte le lingue del mondo è la soluzione corretta per una giusta codifica.