Wie man “Incorrect string value” -Fehler behebt?

Nachdem ich bemerkte, dass eine Anwendung aufgrund falscher Zeichenfolgenfehler dazu neigte, zufällige E-Mails zu verwerfen, wechselte ich jedoch viele Textspalten, um die zu verwendenutf8 Spaltenzeichensatz und die Standardspaltensortierung (utf8_general_ci), so dass es sie akzeptieren würde. Dies behebt die meisten Fehler und führt dazu, dass die Anwendung keine SQL-Fehler mehr erhält, wenn auch nicht-lateinische E-Mails abgerufen werden.

Trotzdem führen einige der E-Mails immer noch dazu, dass das Programm auf falsche String-Wert-Fehler stößt:(Incorrect string value: '\xE4\xC5\xCC\xC9\xD3\xD8...' for column 'contents' at row 1)

Die Inhaltsspalte ist aMEDIUMTEXT Daten, die dieutf8 Spaltenzeichensatz und derutf8_general_ci Spaltenzusammenstellung. In dieser Spalte gibt es keine Flags, die ich umschalten kann.

Beachten Sie, dass ich den Quellcode der Anwendung nur dann berühren oder ansehen möchte, wenn dies unbedingt erforderlich ist:

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 die Umstellung auf ein utf8-Varchar ([eine große Zahl]) mit aktiviertem Binär-Flag, aber MySQL ist mir eher unbekannt, und ich habe keine Ahnung, ob eine solche Korrektur sinnvoll ist.

Antworten auf die Frage(20)

Ihre Antwort auf die Frage