qual é a diferença entre utf8 e latin1?
mysql
utf-8
installation
latin1
caixote do lixo
fonte
fonte
Respostas:
O UTF-8 está preparado para dominar o mundo, o Latin1 não.
Se você estiver tentando armazenar caracteres não latinos, como chinês, japonês, hebraico, russo, etc, usando a codificação Latin1, eles acabarão como mojibake . Você pode achar útil o texto introdutório deste artigo (e ainda mais se conhecer um pouco de Java).
Observe que o suporte completo a UTF-8 de 4 bytes foi introduzido apenas no MySQL 5.5. Antes dessa versão, ele só subia até 3 bytes por caractere, não 4 bytes por caractere. Portanto, ele suportava apenas o plano BMP e não, por exemplo, o plano Emoji. Se você deseja suporte completo a UTF-8 de 4 bytes, atualize o MySQL para pelo menos 5,5 ou opte por outro RDBMS como o PostgreSQL. No MySQL 5.5+ é chamado
utf8mb4
.fonte
VARBINARY
vez deVARCHAR
e decodificar / codificar na camada de negócios, mas isso é hacky. Considere fazer uma nova pergunta, talvez haja maneiras melhores.Em latin1, cada caractere tem exatamente um byte de comprimento. No utf8, um caractere pode consistir em mais de um byte. Consequentemente, utf8 tem mais caracteres que latin1 (e os caracteres que eles têm em comum não são necessariamente representados pela mesma sequência de bytes / bytes).
fonte
binary
agrupar ...? e qual é o melhor para campos numéricos / inglês:ascii_general_ci
ouascii_bin
?