Nachdem ich festgestellt hatte, dass eine Anwendung aufgrund falscher Zeichenfolgenfehler dazu neigte, zufällige E-Mails zu verwerfen, wechselte ich viele Textspalten, um den utf8
Spaltenzeichensatz und die Standardspalte collate ( utf8_general_ci
) zu verwenden, damit sie akzeptiert werden. Dies behebt die meisten Fehler und führt dazu, dass die Anwendung keine SQL-Fehler mehr erhält, wenn auch nicht-lateinamerikanische E-Mails empfangen werden.
Trotzdem führen einige E-Mails immer noch dazu, dass das Programm falsche Fehler bei den Zeichenfolgenwerten trifft: (Incorrect string value: '\xE4\xC5\xCC\xC9\xD3\xD8...' for column 'contents' at row 1)
Die Inhaltsspalte ist eine MEDIUMTEXT
Datenbank, die den utf8
Spaltenzeichensatz und die utf8_general_ci
Spaltenkollatierung verwendet. In dieser Spalte gibt es keine Flags, die ich umschalten kann.
Denken Sie daran, dass ich den Quellcode der Anwendung nicht berühren oder gar ansehen möchte, es sei denn, dies ist unbedingt erforderlich:
- Was verursacht diesen Fehler? (Ja, ich weiß, dass die E-Mails voller zufälliger Abfälle sind, aber ich dachte, utf8 wäre ziemlich freizügig.)
- Wie kann ich es reparieren?
- Was sind die wahrscheinlichen Auswirkungen eines solchen Fixes?
Eine Sache, die ich in Betracht gezogen habe, war der Wechsel zu einem utf8-Varchar ([eine große Zahl]) mit aktiviertem Binärflag, aber ich bin mit MySQL eher unbekannt und habe keine Ahnung, ob eine solche Korrektur sinnvoll ist.