2016-07-24 14 views
1

In meinem Java-Projekt bekomme ich [SqlExceptionHelper] Incorrect string value: '\xF0\x9F\x90\xBE V...', obwohl MySQL Workbench zeigen, dass die Tabelle ist in UTF-8, und hinzufügen in der Werkbank der Wert "Brandst ä ter" funktioniert.Getting [SqlExceptionHelper] Falscher String-Wert: ' xF0 x9F x90 xBE V ...' obwohl die Tabelle in UTF-8 ist

Ich habe in der Werkbank die Kollation von utf8 zu utf8mb4 geändert, und das hat nicht funktioniert. Auch im Java-Projekt habe ich in meiner application.properties-Datei: jdbc.url = jdbc:mysql://localhost:3306/recommendations?useUnicode=true&characterEncoding=utf8 (Ändern utf8 bis utf8mb4 coised Unsupported character encoding 'utf8mb4').

Auch dies gibt utf8: SELECT default_character_set_name FROM information_schema.SCHEMATA S WHERE schema_name = "db-name";

Was kann ich tun?

Bearbeiten: Die Daten eingefügt: "Loy ߐ ¾ Virtual Pet Game".

Edit2: Jetzt, wo ich enger schaue, this application's name coases das Problem. Was soll ich machen? Vernachlässigen Sie die seltsamen Zeichen (mit Character.isISOControl, oder gibt es eine Zusammenstellung noch leistungsfähigere dann UTF-8

+0

Können Sie Ihren Java-Code hinzufügen, der die Daten in Ihre Datenbank einfügt? –

+0

monkeyStix - wie ich schon sagte, ich habe versucht, utf8mb4 zu sagen, aber es hat nicht funktioniert. Habe ich etwas falsch gemacht? – Ran

+0

Welche Version von MySQL verwenden Sie? – monkeyStix

Antwort

1

Sie benötigen utf8mb4 in der Tabelle und in Ihrer Verbindung zur Datenbank

Hier ist der Schlüssel:?.

\xF0\x9F\x90\xBE 

Hinweis das erste Byte hex F0 Dass die UTF8 Lead-in für einen 4-Byte 'Charakter' ist MySQLs utf8 nicht länger als 3 Bytes nicht behandeln;... utf8mb4 tut

012.

Hinweis: Außerhalb von MySQL bedeutet "UTF-8" Zeichen beliebiger Länge. Innerhalb von MySQL gibt es die verwirrende Unterscheidung zwischen "utf8" und "utf8mb4".

+0

Wie stelle ich es ein? Ich habe versucht in der jdbc.url und gescheitert (siehe meine Frage), und es half mir nicht in MySQL über die Workbench. – Ran

+0

Welche Version von JDBC? Von MySQL? –

+0

Keine Ahnung von JDBC, MySQL ist 5.7.12/13 – Ran