Depois de perceber que um aplicativo tendia a descartar emails aleatórios devido a erros incorretos no valor da string, eu fui embora e troquei muitas colunas de texto para usar o utf8
charset de coluna e a coluna padrão collate ( utf8_general_ci
) para aceitá-las. Isso corrigiu a maioria dos erros e fez com que o aplicativo parasse de receber erros de sql ao acessar e-mails não latinos também.
Apesar disso, alguns dos e-mails ainda estão fazendo com que o programa atinja erros incorretos no valor da string: (Incorrect string value: '\xE4\xC5\xCC\xC9\xD3\xD8...' for column 'contents' at row 1)
A coluna de conteúdo é um MEDIUMTEXT
dado que usa o conjunto de utf8
caracteres da utf8_general_ci
coluna e a coluna é agrupada . Não há sinalizadores que eu possa alternar nesta coluna.
Lembre-se de que não quero tocar nem olhar o código-fonte do aplicativo, a menos que seja absolutamente necessário:
- O que está causando esse erro? (sim, eu sei que os e-mails estão cheios de lixo aleatório, mas achei que o utf8 seria bastante permissivo)
- Como posso corrigir isso?
- Quais são os efeitos prováveis dessa correção?
Uma coisa que considerei foi mudar para um utchar8 varchar ([algum número grande]) com o sinalizador binário ativado, mas não estou familiarizado com o MySQL e não tenho idéia se essa correção faz sentido.