Jak naprawić błędy „Niepoprawna wartość ciągu”?

Po zauważeniu, że aplikacja ma tendencję do odrzucania losowych wiadomości e-mail z powodu błędów w błędnych wartościach ciągów znaków, przeszedłem i zmieniłem wiele kolumn tekstowych, aby użyćutf8 zestawienie kolumn i domyślna kolumna sortują (utf8_general_ci), aby je zaakceptować. To naprawiło większość błędów i sprawiło, że aplikacja przestała otrzymywać błędy sql, gdy trafiła również na wiadomości e-mail spoza łaciny.

Mimo to niektóre e-maile wciąż powodują, że program trafia na niepoprawne błędy o wartościach ciągu:(Incorrect string value: '\xE4\xC5\xCC\xC9\xD3\xD8...' for column 'contents' at row 1)

Kolumna zawartości to aMEDIUMTEXT typ danych, który używautf8 zestaw kolumn iutf8_general_ci zestawić kolumnę. Nie ma flag, które mogę przełączać w tej kolumnie.

Pamiętając, że nie chcę dotykać ani nawet patrzeć na kod źródłowy aplikacji, chyba że jest to absolutnie konieczne:

Co powoduje ten błąd? (tak, wiem, że e-maile są pełne losowych śmieci, ale myślałem, że utf8 będzie całkiem przyzwoity)Jak mogę to naprawić?Jakie są prawdopodobne skutki takiego rozwiązania?

Jedną z rzeczy, które rozważyłem, było przejście na varchar utf8 ([pewna duża liczba]) z włączoną flagą binarną, ale nie jestem zaznajomiony z MySQL i nie mam pojęcia, czy taka poprawka ma sens.

questionAnswers(20)

yourAnswerToTheQuestion