¿Cuál es la diferencia entre utf8 y latin1?
mysql
utf-8
installation
latin1
binbash
fuente
fuente
Respuestas:
UTF-8 está preparado para dominar el mundo, Latin1 no lo está.
Si está tratando de almacenar caracteres no latinos como chino, japonés, hebreo, ruso, etc., usando la codificación Latin1, entonces terminarán como mojibake . Puede encontrar útil el texto introductorio de este artículo (e incluso más si conoce un poco de Java).
Tenga en cuenta que el soporte completo de 4 bytes UTF-8 solo se introdujo en MySQL 5.5. Antes de esa versión, solo sube a 3 bytes por carácter, no a 4 bytes por carácter. Por lo tanto, solo admite el plano BMP y no, por ejemplo, el plano Emoji. Si desea compatibilidad total con UTF-8 de 4 bytes, actualice MySQL a al menos 5.5 o elija otro RDBMS como PostgreSQL. En MySQL 5.5+ se llama
utf8mb4
.fuente
VARBINARY
lugar deVARCHAR
decodificar / codificar en el nivel empresarial usted mismo, pero esto es hacky. Considere hacer una nueva pregunta, tal vez hay mejores formas.En latin1 cada carácter tiene exactamente un byte de longitud. En utf8, un carácter puede constar de más de un byte. En consecuencia, utf8 tiene más caracteres que latin1 (y los caracteres que tienen en común no están necesariamente representados por el mismo byte / bytesequence).
fuente
binary
cotejar ...? y cuál es mejor para los campos de inglés / numéricos:ascii_general_ci
oascii_bin
?