MySQL / Java - Umlaute

  • Hallo,

    ich hab eine Frage. Ich muss fuer ein Programm Daten aus einer MySQL-Datenbank rauslesen. Wenn jetzt jedoch Umlaute in der Datenbank stehen, dann werden die in Java komisch ausgegeben ... das "ö" wird zu einem " usw.

    Weiß jemand vielleicht, was ich da tun kann? Ich braeuchte es fuer Windows XP, das Programm soll darunter laufen.

    -Lara.

  • ich hab eine Frage. Ich muss fuer ein Programm Daten aus einer MySQL-Datenbank rauslesen. Wenn jetzt jedoch Umlaute in der Datenbank stehen, dann werden die in Java komisch ausgegeben ... das "ö" wird zu einem " usw.

    Weiß jemand vielleicht, was ich da tun kann? Ich braeuchte es fuer Windows XP, das Programm soll darunter laufen.


    ich schätze, dass Java glaubt es ist ISO und es ist UTF-8. Oder MySQL glaubt es ist UTF-8 dabei kommt es als ISO daher beim Reinschreiben, oder so ähnlich. Check mal die Kodierung Deines HTML Formulars (ich nehme, Du hast eins) und die Kodierung des Feldes in der DB.

    *** Make it idiot proof, and someone will build a better idiot. ***

  • Ohne an der Konfiguration der Datenbank was ändern zu müssen, kannst du das, was du vom ResultSet bekommst, von dem Zeichensatz, den die Datenbank verwendet (latin1 aka iso-8859-1, cp1252, utf8, was auch immer, siehe "show create table <tablename>") in Unicode konvertieren; und zwar ca. so:

    PHP
    String unicodeString = new String(databaseInput.getBytes("latin1"));
  • Ich hab mittlerweile die Codierung der Datenbank auf UTF-8 umgestellt, Java sollte ja an und fuer sich auch UTF-8 lesen. Wenn ich jetzt die Daten direkt in Java eingebe und dann aus der DB lese, dann erkennt es die Umlaute - wenn ich jedoch die initialisierten Daten direkt in die MySQL-Datenbank reinschreibe (direkt mit SQL), dann funktioniert's nicht.

    Aber danke auf jeden Fall. Falls weitere neue Daten benoetigt werden, dann werden sie eh direkt ueber mein Java-programm eingegeben und das passt dann schon. Muss mir halt nur was ueberlegen fuer die Daten, die ich eigentlich initialisierenderweise anfangs direkt in die DB reinschreiben will.

  • Womit schreibst du "direkt in die DB rein"? Mit dem Commandline-MySQL-Client? Vielleicht das Argument --default-character-set=utf8 beim Start des Clients. Und wenn du aus einer Datei liest, sollte die dann auch utf8-encodiert sein.

  • Hm, danke. Das hab ich allerdings beides gesetzt. Ist mittlerweile auch egal, ich hab einen kleinen Workaroudn geschaffen und da das eh nur am Anfang wichtig ist, beschaeftige ich mich jetzt nicht weiter damit. (oder will mich jetzt nicht mehr weiter damit beschaeftigen - angesichts des restlichen umfangs der software is das nur miniminimini ;) )

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!