Darstellung von Umlauten

Status
Nicht offen für weitere Antworten.

stetabar

Bekanntes Mitglied
Hallo zusammen,

ich beschäftige mich gerade mit einem kleinen Problem.
Ich dachte erst, es wären die Daten, die ich von meiner MySQL-Tabelle bekomme, aber es scheint wohl unmittelbar an JAVA zu liegen.

Wenn ich deutsche Umlaute (üöäÜÖÄ) verwenden möchte, dann stellt mir JAVA die anders dar...
Wenn ich einfach über System.out.println("üöäÜÖÄ") eingebe, bekomme ich das hier :

³÷õ▄Í─

was muss ich einstellen, oder ändern, damit mir JAVA das richtig anzeigt?


Danke für eure Hilfe!
 
hab eben noch was gelesen, dass es da probleme mit unicode und ascii gibt...

ich starte aus JAVA eine URL Connection, in der ich alles in HTTP Encoding brauche.
Kann ich dann nicht einfach den Übermittelten String nach Umlauten durchsuchen und die richtig setzen?

also Ü = %DC
 
ach so, wenn ich mit replaceAll arbeite, geht es leider nicht...

Wenn ich replaceAll("Ü","%DC") anwende, dann wandelt er vorher noch das "%" in "%25" um.
Dann steht da "%25DC". Und das kann natürlich auch nicht interpretiert werden...🙁
 
Bei
Code:
System.out.println("HOTTEHÜH".replaceAll("Ü", "%DC"));

kommt hinten "HOTTEH%25DCH" raus?
 
nein, da kommt es richtig raus.
wenn ich dann aber über den URL-connect diesen String weitergeben möchte, interpretiert er das "%" als "%25" und dann steht da "%25DC" und dass wird dann nicht mehr richtig interpretiert...
 
Ja klingelts da nicht bei Dir? %25 steht für das Prozentzeichen. D.h. er wertet das schon korrekt aus. Daher sollte das auch direkt mit dem Ü funktionieren.
Du redest hier von zwei verschiedenen Problemen: Einmal, dass Deine Console Deines geheimen Betriebssystems Salat ausgibt und einmal, dass die URLConnection den String (offenbar korrekt) in HTTP Encoding wandelt.
 
wenn er den string komplett richtig auswerten würde, hätte ich doch erst garnichts gesagt...
also es ist eine windows-konsole.
allerdings benutze ich die gerade nur mal so zum testen.

bekomme meine daten aus einer postgresql DB (kann aber auch per hand die umlaute direkt in den javacode packen).

die konsolenausgabe kann die umlaute nicht interpretieren (scheint einfach an windows zu liegen. kann man aber irgendwie einstellen. hab nur noch nicht gefunden, wie).

aber wenn intern in java alles in der unicodecodierung läuft und er "%" richtig interpretiert, warum dann nicht auch die umlaute???

ich verstehe es gerade echt nicht... :?
 
mir ist gerade noch was aufgefallen. vielleicht kann es ja auch daran liegen...
ist habe meine kompletten JAVA-Klassen mit dem Editor unter Windows erstellt und habe festgestellt, dass er die Dateien im Ansi-Format abgespeichert hat.
Wenn ich diese nun in unicode oder utf-8 abspeicher gibt er mir aber den fehler:

illegal character: \187

in der zeile steht nur:

/*****************************************/

weiß da jemand mal gerade weiter?
vielleicht liegt es bei mir ja an der falschen codierung der datei?!?!?!
 
Als Programmierer solltest du dir schnellstmöglich wahlweise eine IDE, oder einen Editor der den Namen auch verdient besorgen. Das Windows Teil hat weniger Funktionalität als eine JTextArea, aber dafür ein erstaunliches Talent Dateien zu zerstören.
 
was könnte ich denn jetzt ohne großen aufwand verwenden?
ginge auch dreamweaver?
hab da gerade gesehen, dass ich auch *.java abspeichern kann...

allerdings habe ich schon getestet, der fehler mit dem "ö" (umlaute) bleibt bestehen...
also is mir dadurch auch nicht wirklich geholfen...

vielleich sollte ich erstmal testen, wie ich es hinbekomme, dass die umlaute angezeigt werden!?

Wenn ich einfach über

Code:
System.out.println("Test der Umlaute: äöüÄÖÜ");

was ausgeben lassen will, bekomme ich nur die komischen Zeichen wie oben beschrieben...
liegt das nun an der windowskonsole?
wie kann ich das problem beheben?
 
Ich glaube nicht das die Windows Konsole (die ihren Namen ebenfalls nicht verdient) überhaupt Unicode darstellen kann.
 
aber wenn dem so ist, warum werden dann, wenn ich mit dem url-connect arbeite (muss einer url-daten übergeben), nicht die richtigen umlaute übermittelt?

da wird schließlich alles an der konsole vorbeigeschleußt...

also ich verwende die konsole eh nur, um mal reinzuschaun und zu sehen, was möglicherweise falsch gelaufen ist.

java setzt zB ein leerzeichen in "+" um oder ein komma in "%2C".
nur bei den umlauten kommt da quatsch raus.
ich kann halt nicht ganz nachvollziehen, wo da der fehler ist.

das windows nich doll is, brauchen wir an dieser stelle wohl kaum zu diskutieren, da ich eh nur gezwungenermaßen mit dieser infrastruktur arbeiten muss...

aber muss ja trotzdem mein ziel erreichen...

also wenn du da noch nen vorschlag hättest, wäre das wunderbar. danke
 
Konsole und URL sind zwei völlig verschiedene Dinge. Bei letzterer musst du den String erst durch den URLEncoder jagen.
 
das passiert!

Code:
addtext = URLEncoder.encode("addText", "UTF-8") + "=" + URLEncoder.encode(addtext, "UTF-8");

und wie gesagt, andere zeichen wie zB komma oder leerzeichen und sonstiges kann er interpretieren und richtig umsetzen, aber umlaute kommt nur mist bei rum...
 
klasse kommentar!

das suche ich ja auch, was ich da für utf-8 eintragen müsste...
wenn ich meine klassen in utf-8 codiere, dann habe ich das problem, dass der kompiler meckert...

also muss ich es an einer stelle ändern.
da nunmal alles bis auf das läuft, würde ich dann doch lieber den urlencoder ändern, aber was schreibe ich darein, wenn die in notepad erstellten dateien im ansi-format abgespeichert wurden???
 
habs jetzt mit ISO-8859-1 getestet.
zumindest das sz "ß" scheint zu gehen, die anderen muss ich mal überprüfen.
 
wenn ich es in unicode abspeicher, gibt es auf einmal ungefähr 100 Fehler, die schon damit anfangen, dass ich einen Kopf auskommentiert habe mit

/***************************
* *
****************************/

da wird jeder * als Fehler angezeigt...

wenn ich es in utf-8 abspeicher, dann erkennt er noch ein symbol vor meinem code, dass ich vorher noch nie gesehen habe...
das hier :



setzt er, wenn ich es hierein kopiere, allerdings sieht es beim kompilieren in der konsole anders aus...
so wie meherere umgedrehte L's mit nem ' davor...

auf alle fälle scheint der das Symbol für den ganzen quellcode zu schreiben und verursacht so eine ganze menge von fehlern...
denke, dass die codierung, die windows vornimmt einfach mist ist, oder aber das codierungsformat doch nicht ganz identisch ist...
 
dass Deine Daten aus einer PostgreSQL DB kommen, ist auch nicht unwichtig! In welchem Encoding sind die Daten dort gespeichert?

Ich würde Dir ebenso raten, alles in UTF-8 zu machen, also auch die DB.

/Edit: Und auch kurzfristig kannst Du als IDE Eclipse nehmen.
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben