buffered reader produziert zu viele und seltsame zeichen

localhost1

Mitglied
Hallo liebe Freunde,

Ich habe eine Datei mit folgendem Inhalt:

Sicherungsstatus
Der Vorgang wurde nicht durchgeführt, da die angegebenen Medien nicht gefunden wurden.

----------------------

Das zeigt mir der notepad.exe an.

Wenn ich jetzt per
(Ausschnitt)
Java:
 try
		{
			BufferedReader in = new BufferedReader(new FileReader(latestLog));
			String zeile = "";
			while ((zeile = in.readLine()) != null) 
			{
				System.out.println(zeile);
			}
			
		}
		catch (IOException e)
		{
			e.printStackTrace();
		}

diese Datei einlese, kommt in meiner Console (benutze Eclipse SDK 3.7.0) folgende Ausgabe, die ich als Anhang rein habe (ich kann den text nicht kopieren-> einfügen denn da kommt nur ÿþS)



Das ist irgendwie komisch, habe ein wenig gegoogeld und auch die API gelesen, finde aber Nichts was mich weiterbringt oder was ich verstehe.... Kann mir von euch Jemand helfen? Diese Sonderzeichen am Anfang und vor Allem diese Leerzeichen zwischen jedem char sind nervig.

Edit:Rechtschreibung
 
Zuletzt bearbeitet:
Sieht so aus als ob die Datei als UTF-16 kodiert ist. Versuch mal statt new FileReader(latestLog) den folgenden Code:

Java:
new InputStreamReader(new FileInputStream(latestLog),"UTF-16")

Die beiden zusätzlichen Zeichen am Anfang sind btw ein Byte Order Mark.
 
Java:
try
		{
			InputStreamReader in = new InputStreamReader(new FileInputStream(latestLog),"UTF-16");
			String zeile = "";
			int tmp=0;
			while ((tmp = in.read()) != -1) 
			{
				zeile+=(char)tmp;
			}
			
			System.out.println(zeile);
		}

gibt das richtige Ergebnis. Man beachte den Cast von den Integern

Danke Lumaraf!
Darf ich noch wissen woran du die Formatierung erkannt hast? Liegt wohl an dem Byte Order Mark aber ich erkenne nicht direkt wie

Edit:
Byte Order Mark ? Wikipedia 😳
 
Zuletzt bearbeitet:

Zurück
Oben