Intern speichern die meisten Dateisysteme Bytes: Dem Dateisystemtreiber ist es egal, was die Bytes bedeuten. Der generische Dateisystemtreiber unter Linux und den meisten anderen modernen Betriebssystemen lässt /
zu, dass in einem Dateinamen ein anderes Byte als und das Null-Byte vorkommt.
Es gibt Dateisysteme, für die möglicherweise Codierungsbeschränkungen gelten - normalerweise nicht native Dateisysteme wie FAT oder NTFS. Einige Netzwerk-Dateisysteme wie Samba können zwischen der Server-Codierung und der Client-Codierung konvertieren. Sie müssen sicherstellen, dass die Server- und Clientkonfigurationen kohärent sind.
Herkömmlicherweise werden auf den meisten Systemen die Bytes, aus denen ein Dateiname besteht, als UTF-8 interpretiert. Wenn Sie eine Anwendung ausführen, die die Dateinamen als Zeichen interpretiert, z. B. eine Anwendung, die die Namen über FTP überträgt, müssen Sie diese Anwendung möglicherweise so konfigurieren, dass sie mitteilt, dass Ihre Dateinamen in UTF-8 codiert sind. Das Festlegen der Umgebung LC_CTYPE
auf ein UTF-8-Gebietsschema en_US.UTF-8
ist für viele Befehlszeilenanwendungen der Trick.
Wenn Sie Dateien auf einem System speichern, das UTF-8 nicht unterstützt, spielt dies keine Rolle. Die Bytes bleiben gleich. Sie können die Zeichen, aus denen die Dateinamen bestehen, nicht anzeigen. Wenn Sie die Dateien jedoch zurück auf ein System kopieren, das UTF-8 unterstützt, werden dieselben Bytes weiterhin als UTF-8-Zeichen angezeigt.
Wenn Sie Ihre eigene Anwendung schreiben, ist es eine gute Idee, UTF-8 intern und nach Möglichkeit für die Speicherung und Übertragung zu verwenden.
Gilles 'SO - hör auf böse zu sein'
quelle