Ich habe diese MySQL-Tabelle in der Produktion, die von Charset latin1_swedish_ci (alias latin1) ist."Falscher String-Wert:" MySQL-Problem beim Einfügen von UTF8-Text in eine Latin1-Spalte
Im Moment gibt es diesen eingehenden Inhalt (String: "\ ud55c \ ubc24 \ uc758") in einem UTF-8-Format, das in diese Spalte TEXT Feld Schlüsselwörter in der Tabelle mit dem Namen eingefügt werden muss.
Wenn ich versuche, die INSERT ausführen, bekomme ich diesen Fehler:
Incorrect string value: '\xED\x95\x9C\xEB\xB0\xA4...' for column 'keywords' at row 1
ich alle Arten von Möglichkeiten, in meinem Java-Code versucht haben, zu versuchen, von UTF8 nach ISO-8859-1 wie diese unten zu konvertieren und ich bin immer noch den gleichen Fehler:
String convertedString = new String(originalString.getBytes("UTF-8"), "ISO-8859-1");
ich weiß, es gibt Lösungen auf Stackoverflow, der den Zeichensatz des MySQL-Tabelle zu UTF8 ändern erwähnt von latin1, und ich kann leider nicht tun, weil es sich um eine Live-Produktion MySQL-Master-Server und es war auch historisch für uns in Latein1.
Hat jemand irgendwelche Vorschläge, um diesen Fehler "Falscher String-Wert" zu beheben?
Dank IS
Sie müssen die Codierung _in Java_ von usc2 zu utf8 ändern. "ISO-8859-1" ist nirgends in dem, was du zeigst, involviert. Du hast auf '한밤' gehofft, richtig? –
Hallo Rick James, danke für die schnelle Antwort. Was meinst du damit, die Codierung von usc2 zu utf8 zu ändern? Entschuldigung, ich folge nicht. Und ja, ich würde gerne zu 한밤 kommen – user1805458
Also gab es ein altes Python-Skript, das diesen Unicode-Text aus einer anderen MySQL-Datenbank (in utf-8) lesen und in diese latin1-MySQL-Datenbank schreiben würde, und dieser Text würde angezeigt Wenn ich herausfinden kann, wie ich die "\ ud55c \ ubc24 \ uc758" in "í • œë ° ¤ì~" in meinem Java Code umwandeln kann, dann bin ich gut – user1805458