1Danke
ERLEDIGT
NEIN
NEIN
ANTWORTEN
7
7
ZUGRIFFE
2096
2096
EMPFEHLEN
-
25.03.08 00:40 #1
- Registriert seit
- May 2004
- Beiträge
- 684
Guten Abend zusammen,
ich würde mich über ein wenig Unterstützung bei folgendem kleinen Problem freuen:
Ich habe hier eine Textdatei (mit dem Programm UltraEdit32) erstellt, in der folgende Zeilen sind:
Code :1 2 3 4 5 6 7 8 9 10 11 12
Mars Jupiter Erde Sonne Pluto Venus Uranus Merkur Saturn Ü Ä Ö
Die Kodierung ist UTF-8, Unix Zeilenenden. Ich lese diese Datei folgendermaßen ein:
Code :1 2 3 4 5 6
List< String > lines = new ArrayList< String >(); String line = null; BufferedReader br = new BufferedReader( new InputStreamReader( in, "UTF-8" ) ); while ( ( line = br.readLine() ) != null ) lines.add( line );
("in" ist ein FileInputStream)
Gebe ich die String in "lines" aus, so erhalte ich diese Ausgabe auf der Console:
Code :1 2 3
?Mars Jupiter ....
(der Rest nach ... ist identisch mit oben).
Woher jedoch kommt das "?" (welches ja nur ein Platzhalter für irgendein nichtdarstellbares Zeichen ist) vor "Mars"?
Das hat sicher irgendetwas mit der Kodierung zu tun, aber bei der Thematik habe ich mich schon immer verfranzt
Ich hoffe jemand kann etwas Licht ins Dunkel bringen!
Vielen Dank
-
Arbeitest du unter Windows und lässt dir das ganze auf der Konsole ausgeben? Windows hat nämlich keine Unicode-Konsole, daher können Unicode Zeichen dort nicht korrekt dargestellt werden.
Wie siehts mit den Umlauten aus, werden die korrekt dargestellt?
-
25.03.08 11:00 #3
- Registriert seit
- May 2004
- Beiträge
- 684
Ja ich arbeite unter Windos. Allerdings möchte ich letztendlich die Wörter in JLabels anzeigen und auch ein JLabel zeigt mir solch einen Platzhalter an (kein Fragezeichen sondern an der Stelle ein kleines Rechteck).
Umlaute werden korrekt dargestellt, auf der Konsole sowie auch auf einem JLabel.
Es ist ja sehr merkwürdig, dass genau am Anfang dieses komische Zeichen auftaucht. Als wenn es von der Kodierung her dort Informationen gibt, die Java nicht interpretieren kann, oder sowas in der Art.
-
Hab ich ganz vergessen dir zu antworten... sorry.
Wenn die Umlaute korrekt sind, dann sollte das einlesen auch korrekt sein. Lösch doch mal den Dateianfang vom Mars inklusive M und gib das neu ein. Vllt steht da echt unsinn.
-
25.03.08 20:55 #5
- Registriert seit
- May 2004
- Beiträge
- 684
Das habe ich mal ausprobiert, und das Fragezeichen taucht wieder am Anfang auf. Das ist wirklich merkwürdig... aber ich denke mal eine Textdatei als UTF-8 mit Unix Zeilenende per UltraEdit32 zu speichern, kann ja nicht falsch sein (Das Programm ist ja für Textverarbeitung nicht gerade unbakannt).
Würdest Du es vielleicht einmal bei Dir ausprobieren, wenn ich die Textdatei zur Verfügung stelle?
-
Hmm ich kanns ausprobieren obs bei mir geht ja, ist allerdings nen Ubuntu.
-
Hallo,
möglicherweise steht am Anfang der Datei ein Byte Order Mark. Schau mal, ob du deinen Editor dazu bringen kannst, das nicht mehr in die Datei zu schreiben.
Grüße,
Matthias„Gib einem Menschen einen Fisch, und er wird für einen Tag satt. Lehre ihn Fischen, und er wird ein Leben lang satt.“
“For every complex problem, there is an answer that is short, simple and wrong.”
“Pessimism is safe, but optimism is a lot faster!”
Aktuelles Coding Quiz: #17 - Wörter kreuz und quer
-
26.03.08 08:51 #8
- Registriert seit
- May 2004
- Beiträge
- 684
Ähnliche Themen
-
Problem beim Erstellen einer Textdatei
Von joe81 im Forum .NET Windows FormsAntworten: 2Letzter Beitrag: 01.11.10, 07:58 -
C/C++ Aus Textdatei einlesen & in Eingabefeld einlesen
Von Müllmanni im Forum C/C++Antworten: 3Letzter Beitrag: 31.08.09, 15:11 -
Zwei leerzeilen beim Einlesen einer Textdatei
Von Matze im Forum JavaAntworten: 3Letzter Beitrag: 03.07.09, 11:43 -
Verständnis-Probleme beim Textdatei in Variable einlesen
Von Lautsprecher im Forum Visual Basic 6.0Antworten: 3Letzter Beitrag: 23.12.05, 09:49 -
Problem beim Datei einlesen
Von avenger2099 im Forum C/C++Antworten: 7Letzter Beitrag: 18.05.05, 10:37





Zitieren


Login





