jar-Datei stellt Umlaute nicht dar

  • Themenstarter Themenstarter Schwammi1000
  • Beginndatum Beginndatum
S

Schwammi1000

Gast
Hallo Leute,

ich habe ein Problem mit Umlauten in meiner Java-Applikation. Ich arbeite mit Netbeans 7.0. Ich lese aus einer Textdatei Daten aus und stelle sie dann in der GUI dar (bspw. in einer JComboBox oder dem JLabel). Wenn ich das Programm von Netbeans aus starte funktioniert das einwandfrei. Wenn ich jedoch die ausführbare jar-Datei ausführe, werden die Zeichen falsch dargestellt.

Ich hab mir die Textdateien mit einem HexViewer angesehen. Ich glaube das es sich um UTF-8 handelt, da bin ich aber nicht so Sattelfest

So steht es in den Textdateien:
ü...C3 BC
ä...C3 A4
ö...C3 B6
ß...C3 9F

Ich hoffe mir kann jemand helfen.

mfg
Markus
 
Kurz nach dem Eröffnen des Themas habe ich dann eine neue Idee gehabt. Ich habe eine gespeicherte Datei von Netbeans angesehen und eine die von der jar-Datei gespeichert wurde. Hier wurde jetzt der Unterschied klar.

Netbeans speichert in UTF-8:
ü...C3 BC etc.

jar-Datei speichert in ISO 8859-15:
ü...FC

Das heißt Netbeans hat die von jar gespeicherten Dateien nicht lesen können und umgekehrt.
Die eigenen Dateiern konnten jedoch richtig gelesen werden.

Die Lösung des Problems liegt darin, die Enkodierung von Netbeans unter Project-Options-->Source auf ISO 8859-15 zu stellen.

mfg Markus
 
Was nur solange hilft, bis jemand dein Programm unter Linux verwendet, da ist nämlich mittlerweile UTF-8 standard.
Mach es lieber so wie Timbeau gesagt hat und lege dich auf ein Encoding fest und verwende dieses explizit beim Lesen und Schreiben.
 
Alternativ kannst Du aber auch einfach die Unicodekodierung eintragen:
Hier einmal eine kleine Auflistung:

  \u00A0 “Non Breaking Space” – ein erzwungenes Leerzeichen.
& \u0026 & Ampersand-Zeichen, kaufmännisches Und.
< \u003C < öffnende spitze Klammer (kleiner)
> \u003E > schließende spitze Klammer (größer).
ä \u00E4 ä Umlaut klein: ä
Ä \u00C4 Ä Umlaut groß: Ä
ö \u00F6 ö Umlaut klein: ö
Ö \u00D6 Ö Umlaut groß: Ö
ü \u00FC ü Umlaut klein: ü
Ü \u00DC Ü Umlaut groß: Ü
\u00DF ß sZett
€ \u20AC € Euro Währungszeichen
$ \u0024 $ Dollar Währungszeichen
£ \u00A3 £ Pfund Währungszeichen
 
falls ich jetzt mist schreibe tuts mir leid ich bin jetzt schon ein wenig betriebsblind.

NB war bei mir früher auf UTF-8 eingestellt. Innerhalb von NB hat ja alles geklappt. Dh es wurde alles mit UTF-8 geschrieben (siehe Hexviewerergebnisse). Auf dem WindowsPC hat er das HZeichen dann anders interpretiert, und zwar in ISO 8859-15. Deshalb auch immer zwei Zeichen ausgegeben: C3 + iein anderes für den jeweiligen Umlaut. Wie soll ich es machen, dass meine Javaapplikation von außen das mit UTF-8 interpretiert??

mfg
 
Beim Lesen und schreiben kannst du die Kodierung explizit mit angeben. Ich kenn ja deinen Code nicht aber z.B.

Java:
FileWriter fw = new FileWriter(new OutputStreamWriter(new FileOutputStream(file), "UTF-8"));

sowas im Code nutzen. Sonst wird das Default-Encoding benutzt, das bei Windows eben dieses komische cp1528 ist.
 

Zurück
Oben