# BufferedReader(FileReader()) liest komische Zeichen (ï»¿) ein



## jeipack (7. Mai 2007)

Hi
Ich lese bestimmte Daten aus einer Textdatei mit BufferedReader(FileReader(File("myfile.txt))).readline() ein.
Bei der ersten Zeile ganz am Anfang des Strings wird nun immer "ï»¿" angezeigt.
Wenn also im nyfile.txt "HalloWelt" auf der ersten Zeile steht, dann gibt mir br.readline() "ï»¿HalloWelt" zurück. Kennt das jemand? Mach ich was falsch?

Gruss und vielen Dank
jeipack


----------



## Nava (7. Mai 2007)

Versuch mal meinen Code. Sollte es da auch dieses Zeichen geben liegt es wohl an der Text Datei.
Hab selber noch nie so ein Problem gehabt. 

Meine Code:

```
public static void main(String[] args) {
		
		try {
			BufferedReader reader = new BufferedReader(new FileReader(new File("test.txt")));
			String line;
			int i=1;
			while((line=reader.readLine())!=null)
			{
				System.out.println("Zeile "+i+": "+line);
				i++;
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
```
Meine Textfile:

```
Hallo World!
```
Ausgabe:

```
Zeile 1. Hallo World!
```


----------



## jeipack (7. Mai 2007)

Hi Nava
Ja genau das ist mein Code (von der Funktionalität her).
Jetzt sagte mein Kolege gerade, dass er auch schon mal sowas erlebt hat. Er weiss nicht mehr ob es die gleichen Zeichen waren, doch er weiss noch, dass es genau 3 Zeichen am Anfang der Textdatei waren, hatte aber nie herausgefunden woran das liegt.
Im Moment mach ich einfach ein replaceFirst("ï»¿","") und es funktioniert, doch nimmt es mich schon wunder woran das liegt.

Gruss


----------



## Gumbo (7. Mai 2007)

Die Textdatei scheint UTF-8-kodiert, da die UTF-8-BOM (0xEF 0xBB 0xBF) unter ISO-8859-1 als „ï»¿“ interpretiert wird.


----------



## jeipack (7. Mai 2007)

Genau sowas hab ich mir gedacht.
Nun.. ich dachte Java könne mit gängigen Kodierungen umgehen?
Also nochmals zur ersten Frage, mache ich was falsch, oder muss man diese Zeichenfolge immer manuel abfangen?


Thanks 
jeipack


----------



## Edelfalke (8. Mai 2007)

Versuch es mal mit RandomAccessFile, dort kannst du die Textdatei als UTF einlesen mir File.readUTF();


----------

