Zum Inhalt springen

Java Datenbankabfrage mit Umlauten


Empfohlene Beiträge

Geschrieben

Hallo ich habe folgendes Problem ich möchte aus einer MySQL Datenbank Texte mit Umlauten und Sonderzeichen abfragen!

Nun scheint das Problem die Zeichensatzkodierung zu sein!!!

Wenn ich Daten mit Umlauten im ResultSet stehen hatte bekam ich anstelle eines ß irgentwelche anderen komischen Zeichen!(die konnte ich umgehen indem ich nicht ResultSet.getString() sonder new String(ResultSet.getBytes()) aufgerufen hatte)!

Nun dachte ich sei mein Problem gelöst gewesen bis ich in meinem SELECT Statement auch ein Sonderzeichen hatte!!!

Nun meine Frage weiß jemand wie man die Zeichenkodierung festsetzen kann? (im MySql Programm kann ich ohne weiteres mit Umlauten arbeiten! nur wenn ich den weg über Java gehe funktioniert es nicht! kann es am Connector liegen??)

vielen Dank im Voraus

Geschrieben

Hallo und danke erstmal!

Wenn ich mir aber das so anschaue kann ich mit dem Befehl nur die Kodierung in der DB setzen! Da aber die Datenbank die Umlaute und Sonderzeichen wegspeichern kann, denke ich mal, dass es an der Komunikation zwischen Java Programm und DB liegt! Sprich der könnte Connector das Problem sein!

Aber dürfte doch eigentlich nicht so schwer sein oder? Schließlich hat sicherlich jeder von euch in seiner DB die Umlaute und Sonderzeichen! Wie ist das denn bei euch? :confused:

Geschrieben

Je nachdem mit was der mysql client arbeitet, die Datenbank eingestellt ist usw. kann es sein das du Connection Parameter setzen musst.

Auf einem Debian Sarge mit utf8 Datenbank muss ich z.B. folgendes beim DBCP Connection Pool setzen, da die Defaultwerte des Datenbank Servers auf latin1 stehen:


url="jdbc:mysql://192.168.0.1:3306/mydb"

connectionProperties="useUnicode=true;connectionCollation=utf8_general_ci;characterSetResults=utf8;"

Auf dem Entwicklungs Windows System funktioniert aber alles ohne die connectionProperties.

Das ganze findest du auch auf Seite 24 der aktuellen 3.1 Mysql Connector/J Docs.

Gruß Jaraz

Geschrieben

Hi!

Ja habe gerade auch so etwas gefunden gehabt! Aber leider scheint das auch nicht zu gehen!

Sprich wenn ich über Java abspeicher wird aus einem ä zb schwarzes Viereck! Wenn ich das dann über Java wieder einlese ist alles ok und er zeigt mir das ä richtig an!

Wenn ich jetzt aber "per hand" die Daten in die DB mit einem INSERT Statement eintrage dann stehen sie zwar mit ä drin aber wenn ich dann über Java abfrage kommt er damit natürlich nicht klar!

Kurz bisher ist das ganze nur Java - Java oder MySql - MySql kompatibel!(möchte aber auch gerne ne Mischform ermöglichen und da hatte ich eigentlich auch auf das characterEncoding gesetzt gehabt was leider nicht geht :( )

Geschrieben

Hi,

du musst halt überall drauf achten das die Einstellungen stimmen.

Wenn du per mysql Client und latin1 in eine utf8 Datenbank schreibst und ließt, mag das vielleicht an der Stelle gerade gut aussehen, da du ein ä siehst.

Aber wenn du das dann von woanders nicht mit latin1 sondern utf8 ausließt, passt es halt nicht mehr.

Gruß Jaraz

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...