Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Java Server Pages - agrupamento ao inserir no MySql?


Os pontos de interrogação vêm disso:
  • O cliente tem um caractere válido (bom) e
  • Os SET NAMES concorda com a codificação que o cliente tem (bom), mas
  • O CHARACTER SET da coluna de destino não inclui o caractere pretendido (ruim).

Exemplos:
  • latin1 lida apenas com caracteres da Europa Ocidental; tentar colocar um caractere do Leste Europeu ou qualquer caractere asiático nele não vai caber.
  • latin2 e cp1250 pode lidar com o tcheco, então as conversões entre eles são geralmente boas, mas não entre nenhum deles e latin1
  • utf8mb4 é um superconjunto de utf8 .Colocar um caractere utf8 em utf8mb4 está ok, mas o inverso resultará em um '?' em alguns casos.

Os caracteres que foram convertidos para '?' não pode ser recuperado da tabela.

Como corrigir futuros INSERTs ?
  • Usando utf8mb4 na(s) coluna(s) da tabela provavelmente funciona em todos os casos.
  • Caso contrário, escolha algum CHARACTER SET para as colunas da tabela que correspondem razoavelmente aos dados do cliente.

O motivo de apenas alguns dos caracteres serem ? (em š?ž?? ) é porque šž existem em latin1 mas os outros não.

Resumindo:Altere o CHARACTER SET na definição da tabela.