Po zauważeniu, że aplikacja miała tendencję do odrzucania losowych wiadomości e-mail z powodu nieprawidłowych błędów wartości ciągu, przeszedłem i przełączyłem wiele kolumn tekstowych na użycie utf8zestawu znaków kolumn i domyślnego zestawienia kolumn ( 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 trafiała również na e-maile inne niż łacińskie.
Mimo to niektóre e-maile nadal powodują, że program napotyka nieprawidłowe wartości błędów: (Incorrect string value: '\xE4\xC5\xCC\xC9\xD3\xD8...' for column 'contents' at row 1)
Kolumna zawartości to MEDIUMTEXTzbiór danych, który używa utf8zestawu znaków i utf8_general_cisortowania kolumn. W tej kolumnie nie ma flag, które mogę przełączać.
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 przypadkowych śmieci, ale pomyślałem, że utf8 będzie dość liberalne)
- Jak mogę to naprawić?
- Jakie są prawdopodobne skutki takiej poprawki?
Jedną rzeczą, którą rozważałem, było przejście na utf8 varchar ([duża liczba]) z włączoną flagą binarną, ale raczej nie znam MySQL i nie mam pojęcia, czy taka poprawka ma sens.