Umlaute werden trotz UTF-8 nicht angezeigt?

Schlucki6666

Mitglied
Hallo;

Es ist mal wieder soweit. Ich brauche eure Hilfe bzw. mal wieder einen Denkanstoß!
Ich lese aus einem "txt-File" Daten. Was alles reibungslos funktioniert. Die Daten werden sauber "aufbereitet". Soll heißen, dass in der Ausgangs - Textdatei alles richtig geschrieben wird. Aber wenn ich Teile des Inhaltes in einer Liste speichere und dann wieder ausgeben will, sind alle Umlaute (Ä,Ö,Ü) schwarze Vierecke mit Fragezeichen.
Ich habe jetzt die Codierungen (UTF-8/16, sp1252 usw.) geändert, was aber leider keine Abhilfe brachte!
Ich habe auch gelesen, dass es zw. Windows - Eclipse - Handy Probleme mit der Codierung gibt/geben kann. Die Lösungen die ich im I-Net gefunden habe, laufen alle auf den ua. JAVA-Code hinaus. Hat von euch jemand eine Idee oder sogar die Lösung zur Hand?
Besten Dank schon mal für eure Hilfe.

lg
Schlucki

Java:
File myFile = new File("/sdcard/"+datei);
FileInputStream fIn = new FileInputStream(myFile);
BufferedReader myReader = new BufferedReader(
new InputStreamReader(fIn, "UTF-8"));
String[] Listeneintrag = new String[1121];

File fileDir = new File("/sdcard/GesdpLesen.txt");
BufferedWriter in = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(fileDir), "UTF-8"));

for(int i = 0;
(line = myReader.readLine())!=null; i++)
{
Listeneintrag[i] = line;
String eintragen = Listeneintrag[i];
byte[] byteArray = eintragen.getBytes("UTF-8");
String utfText = new String( byteArray, "UTF-8" );
in.write(utfText+"\n");	}
    			
in.close();
myReader.close();
 

anti-held

Bekanntes Mitglied
Warum erstellst du einen FileInputStream, welchen du nur nutzt, um einen weiteren FileInputStream zu erstellen?

Ändere doch mal deine ersten Zeilen auf folgendes ab:

Java:
File myFile = new File("/sdcard/"+datei);
FileInputStream fIn = new FileInputStream(myFile, "UTF-8");
BufferedReader myReader = new BufferedReader(new InputStreamReader(fIn)));
 

dzim

Top Contributor
Kann im Moment kein Problem erkennen. Aber um ehrlich zu sein, lassen sich Encoding-Probleme meist nur schwer "remote" einschätzen.
Ich vermute, dass die Txt immer noch ein falsches Enc. haben.
Du kannst zum einen mal schauen, was dein Default ist: Eclipse --> Window > Preferences > General > Workspace -- > der Eintrag unten Links behandelt Encoding.
Per Projekt findest du es in den Project Properties (auf den Projektname klicken und dann im Kontextmenü ganz unten, oder Alt+Enter). Das selbe kannst du per File überprüfen.
Ich denke, dass dein Auslesen der Datei ok ist, aber dein Erstellen wird es mit cp-1252 oder IOS-8859-1 machen (was unter Windows da so typisch ist).

Mehr kann ich dazu leider auch nicht sagen...
 

Schlucki6666

Mitglied
@ dzim und anti-held;
Danke für eure Antworten!

@dezim:
Ich denke dein Denkanstoß könnte die Lösung sein. Ich habe immer den Fehler in meiner APP bzw. im Eclipse Programmcode gesucht bzw. vermutet.
Ich habe mir mal eine "fremde" APP runtergeladen und dort meine TXT-Datei eingelesen! Obwohl ich diese im UTF-8 Format gespeichert habe, kann ich diese nur "Fehlerfrei" mit Windows-1252 anzeigen. Ergo vermute ich dort das Problem und nicht in meinem Code bzw. meiner APP.
Ich werde das in den nächsten Tagen mal ändern bzw.- Probieren und berichten!

Danke nochmals für eure Mühe

lg
Schlucki
 

Schlucki6666

Mitglied
GELÖST!
Nachdem ich wie oa. meine Datei mit einer APP überprüft habe und feststellen durfte, dass diese trotz Speicherung in Windows mit UTF-8 Code nur mit der Codierung von Windows-1252 richtig ausgelesen wurde!
Nachdem ich nun bei mir alles auf diese Codierung umgestellt habe funktioniert es jetzt so wie es soll!
Dank für eure Hilfe !!!

lg
Schlucki
 

dzim

Top Contributor
@Thalius: Warum ist es Quark? Wenn die Files im Windoof mit cp1252 erstellt wurden, wirst du Probleme haben, wenn du sie explizit mit UTF-8 auslesen willst!
Wenn natürlich die Dateien mit dem korrekten Encoding erstellt wurden, ist es kein Problem, diese auch zu lesen... Also verstehe ich gerade nicht, wo hier etwas "Quark" sein sollte...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Umlaute im Quellcode einer Website richtig darstellen Android & Cross-Platform Mobile Apps 4
P Android EditText zeigt keine Umlaute Android & Cross-Platform Mobile Apps 6
J Android alle erstellten Felder werden übereinander nur in der ersten Zeile in der Emulation dargestellt Android & Cross-Platform Mobile Apps 6
R NUR Audios von der App sollen abgespielt werden und nichts anders Android & Cross-Platform Mobile Apps 3
R Android Visualizer engine kann nicht initialisiert werden Android & Cross-Platform Mobile Apps 3
L Android Animationen werden nicht angezeigt Android & Cross-Platform Mobile Apps 0
S Android ListFragment & ArrayAdapter - Button-Werte werden vergessen Android & Cross-Platform Mobile Apps 0
Z Canvas onDraw() Variablen muss in der Methode initialisiert werden Android & Cross-Platform Mobile Apps 1
X Android Warum werden Views nicht gefunden? Android & Cross-Platform Mobile Apps 4
G Wie heißt die oberste Zeile in der z.B.Uhrzeit und Akkustand angezeigt werden? Android & Cross-Platform Mobile Apps 4
H Buttons werden falsch angeordent Android & Cross-Platform Mobile Apps 2
J id's von view komponenten werden nicht gefunden Android & Cross-Platform Mobile Apps 2
J Java ME java.rmi.Remote kann nicht gefunden/geladen werden Android & Cross-Platform Mobile Apps 9
S IF Anweisung zeigt Fehler trotz richtiger Eingabe? Android & Cross-Platform Mobile Apps 7
K Grafik Tablerow, Button erstreckt sich in der gesamten Breite trotz Beschrenkung durch (max)width Android & Cross-Platform Mobile Apps 2
G Check Button ist unchecked trotz setChecked(true) Android & Cross-Platform Mobile Apps 6
G trotz padding all around kein padding unten Android & Cross-Platform Mobile Apps 2
G trotz Android 4.1 erscheint option menu statt action bar Android & Cross-Platform Mobile Apps 5
P trotz invalidate() wird onDraw() nicht aufgerufen Android & Cross-Platform Mobile Apps 15

Ähnliche Java Themen

Neue Themen


Oben