qual'è la differenza tra utf8 e latin1?
qual'è la differenza tra utf8 e latin1?
Risposte:
UTF-8 è preparato per il dominio del mondo, Latin1 no.
Se stai cercando di memorizzare caratteri non latini come cinese, giapponese, ebraico, russo, ecc. Usando la codifica Latin1, finiranno per essere mojibake . Potresti trovare utile il testo introduttivo di questo articolo (e ancora di più se conosci un po 'di Java).
Si noti che il supporto completo UTF-8 a 4 byte è stato introdotto solo in MySQL 5.5. Prima di quella versione, arriva solo a 3 byte per carattere, non a 4 byte per carattere. Quindi, supportava solo il piano BMP e non ad esempio il piano Emoji. Se vuoi il pieno supporto UTF-8 a 4 byte, aggiorna MySQL ad almeno 5.5 o scegli un altro RDBMS come PostgreSQL. In MySQL 5.5+ si chiama utf8mb4
.
VARBINARY
anziché VARCHAR
e decodificare / codificare nel livello aziendale tu stesso, ma questo è hacky. Valuta di porre una nuova domanda, forse ci sono modi migliori.
In latino1 ogni carattere è esattamente lungo un byte. In utf8 un personaggio può essere composto da più di un byte. Di conseguenza utf8 ha più caratteri di latin1 (e i caratteri che hanno in comune non sono necessariamente rappresentati dallo stesso byte / bytesequence).
binary
fascicolare ...? e quale è meglio per i campi inglese / numerici: ascii_general_ci
oppure ascii_bin
?