utf16 o utf32? Sto cercando di archiviare contenuti in molte lingue. Alcune lingue usano caratteri a doppia larghezza (ad esempio, i caratteri giapponesi sono spesso il doppio di quelli inglesi). Non sono sicuro del tipo di database che dovrei usare. Qualsiasi informazione sulle differenze tra questi quattro set di caratteri ...Utf8_general_ci o utf8mb4 o ...?
28
A
risposta
40
MySQL utf32
e utf8mb4
(nonché UTF-8 standard) possono memorizzare direttamente qualsiasi carattere specificato da Unicode; il primo ha una dimensione fissa di 4 byte per carattere mentre il secondo è compreso tra 1 e 4 byte per carattere.
utf8mb3
e l'originale utf8
può memorizzare solo i primi 65.536 codepoints, che copriranno CJVK (cinese, giapponese, Vietnam, Corea), e l'uso da 1 a 3 byte per carattere.
utf16
utilizza 2 byte per i primi 65.536 codepoint e 4 byte per tutto il resto.
Per quanto riguarda i caratteri, è strettamente una cosa visiva.
Vedi anche MySQL documentation for Unicode support.
Giusto per essere extra-chiaro, il commento su 'utf8_general' si applica anche a tutte le altre regole di' utf8_ * '; tutto userà MySQL "utf8mb3' alias" utf8' charset. –
@JohnFlatness Grazie. Il tuo commento è proprio quello che stavo per chiedere in merito. Pensavo che UTF-16 usasse 2 byte per i caratteri mandarini, ad esempio, però? Sto guardando la documentazione che mi hai dato, sperando che copra cosa significa 65.536. XD –
I caratteri cinesi si trovano nel piano multilingue multilingue (i primi 65.536 punti codificati). –