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();
 
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)));
 
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...
 
@ 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
 
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
 
@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...
 

Neue Themen


Zurück
Oben