# Umlaute beim Einlesen von Dateinamen



## MiMa (9. Sep 2013)

Hallo,

ich lese Dateien in Java Variablen und habe Probleme mit Umlauten im Dateinamen.
Die Dateien liegen auf einem NAS mit Linux Betriebssystem mit dem FileSystem ext4.
Im Filemanager der NAS werden die Dateien korrekt mit Umlauten angezeigt.

Mit dem Filemanager (Finder) unter OSX 10.8 Mountain Lion werden die Dateinamen ebenfalls mit korrekten Umlauten angezeigt.

Mit dem Dateimanager unter Windows 7 werden die Dateiennamen auch korrekt mit Umlauten angezeigt.

Unter Ubuntu gibt es auch keine Probleme

Allerding wenn ich mit meinem Java Programm die Dateien lese, dann landen schon in der Variablenzuweisungen die Dateinamen ohne umlaute und besitzen dann doppelte Fragezeichen (??).
wie a?? für ä, u?? für ü, o?? für ö, und ?? für ß wobei die ? in einer schwarzen Route sind.
Habe nachgeschlagen, das es das Ersetzungszeichen ist.

In der IDE habe ich uft-8 eingestellt.

Weiss vielleicht jemand wie das passiert?

Danke
Mi


----------



## Gucky (9. Sep 2013)

ä,ö und ü sind deutsche und soweit ich weiß Türkische Buchstaben. Sie sind nicht im ASCII enthalten. Womöglich kann deine Klasse nur den ASCII Code.


----------



## MiMa (9. Sep 2013)

Ich habe aber in den Klassen, sowie in der IDE Netbeans überall nachgeschaut utf-8.


----------



## MiMa (9. Sep 2013)

Habe die Klassen man in Eclipse eingeladen und siehe da, dort habe ich jede Menge Fragezeichen anstatt von Umlauten erhalten, obwohl ich alles korrekt eingestellt habe ????


----------



## MiMa (9. Sep 2013)

Ich habe jetzt Java und Eclipse mal in einer Virtuellen Windows Umgebung installiert und das gleiche Projekt in Windows geladen.

Dort klappt das mit den Umlauten hervorragend.

Es liegt also an Netbeans in der Mac Version. 
Scheint wohl ein Fehler zu sein.


----------



## MiMa (9. Sep 2013)

Also habe es nun auf mehreren OS getestet.

Der Quellcode und die Dateiformate stimmen.
Auf Windows funktioniert alles einwandfrei inklusive der Umlaute.

Auf Mac OSX liegt es wahrscheinlich am Betriebssystem, denn das gleiche Projekt vom Mac auf Windows mit Netbeans geladen funktioniert einwandfrei.

;(


----------



## DrZoidberg (9. Sep 2013)

Lies dir mal das hier durch
Mac OS Roman - Wikipedia, the free encyclopedia


----------



## MiMa (9. Sep 2013)

Heißt das das vom MacRoman nur die ersten 128 Zeichen genutzt werden?
Normal hat der Zeichensatz ja 256 Zeiche  eingeschlossen die Umlaute.

Irgendwie blicke ich nicht durch.

Mi


----------



## DrZoidberg (10. Sep 2013)

Wie überprüfst du denn, welche Strings eingelesen werden? Mit System.out.println? Lies einen Dateinamen ein, der mit einem Umlaut beginnt und dann gib den Unicode code des ersten Zeichens aus. Also System.out.println((int)dateiName.charAt(0)). Wenn der Name z.B. mit 'ä' anfängt, müsste die Ausgabe 228 sein.
Unicodeblock Lateinisch-1, Ergänzung ? Wikipedia


----------



## MiMa (10. Sep 2013)

bei meinem ä kommt 97 heraus.


----------



## MiMa (10. Sep 2013)

Beim Mac kommt 97 heraus und bei Windows 228.


----------



## DrZoidberg (11. Sep 2013)

Versuch mal das hier.

```
import java.text.Normalizer;
...
String fileName = ...
fileName = Normalizer.normalize(fileName, Normalizer.Form.NFC);
```


----------



## MiMa (11. Sep 2013)

Dies brachte keine Veränderung.

die Ausgabe ist wie folgt:


```
a��Das Verma��chtnis des Blu��henden Busches a�� o�� u�� ��.avi
97
```


----------

