Como corrigir erros de "valor de seqüência de caracteres incorreto"?
Depois de perceber que um aplicativo tendia a descartar e-mails aleatórios devido a erros incorretos no valor da string, eu fui embora e mudei muitas colunas de texto para usar o erro.utf8
charset de coluna e o agrupamento de coluna padrão (utf8_general_ci
) para que os aceitasse. Isso corrigiu a maioria dos erros e fez com que o aplicativo parasse de receber erros de sql quando também recebia emails não latinos.
Apesar disso, alguns dos e-mails ainda fazem com que o programa atinja errros de valor de string incorretos:(Incorrect string value: '\xE4\xC5\xCC\xC9\xD3\xD8...' for column 'contents' at row 1)
A coluna de conteúdo é umaMEDIUMTEXT
datatybe que usa outf8
charset coluna e outf8_general_ci
agrupamento de colunas. Não há sinalizadores que eu possa alternar nesta coluna.
Lembre-se de que não quero tocar nem mesmo 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 bem permissivo)Como posso consertar isso?Quais são os efeitos prováveis de tal correção?Uma coisa que eu considerei foi mudar para um varchar utf8 ([algum número grande]) com o sinalizador binário ligado, mas eu não estou familiarizado com o MySQL, e não tenho idéia se tal correção faz sentido.