Freigeben über


In Dateinamen verwendete Zeichensätze

NTFS speichert Dateinamen in Unicode. Im Gegensatz dazu verwenden die älteren Dateisysteme FAT12, FAT16 und FAT32 den OEM-Zeichensatz. Weitere Informationen finden Sie unter Code Pages.

Nicht-Unicode-Anwendungen, die FAT-Dateien erstellen, müssen manchmal die standardmäßigen Konvertierungsfunktionen der C-Laufzeitbibliothek verwenden, um zwischen dem Zeichensatz der Windows-Codeseite und dem OEM-Codeseitenzeichensatz zu übersetzen. Bei Unicode-Implementierungen der Dateisystemfunktionen ist es nicht erforderlich, solche Übersetzungen auszuführen.

Ihre Anwendung kann generische Zeichenfolgentypen verwenden, wie in Windows-Datentypen für Zeichenfolgenbeschrieben. Die Anwendung kann auch generische Funktionsprototypen mit Techniken verwenden, die in Konventionen für Funktionsprototypenbeschrieben werden. Bei generischen Zeichenfolgentypen oder generischen Funktionsprototypen kann Ihre Anwendung eine einzelne Quelldatei verwenden, um entweder ein Unicode oder eine Nicht-Unicode-Version zu kompilieren. Um dies zu ermöglichen, stellt die Anwendung Makros für Funktionen bereit, die beim Kompilieren für Unicode nicht aufgerufen werden.

In NTFS- und FAT-Dateisystemen sind die speziellen Dateinamenzeichen: '\', '/', '.', '?' und '*'. Auf OEM-Codeseiten befinden sich diese Sonderzeichen im ASCII-Zeichenbereich (0x00 bis 0x7F). Ihre Unicode-Entsprechungen sind die gleichen Werte in einer 2-Byte-Form, 0x0000 bis 0x007F.

Vorsicht

Windows-Codepage und OEM-Codepage-Zeichensätze, die auf japanischen Betriebssystemen verwendet werden, enthalten das Yen-Symbol (%) anstelle eines umgekehrten Schrägstrichs (\). Daher ist das Yen-Symbol ein unzulässiges Zeichen für NTFS- und FAT-Dateisysteme. Beim Zuordnen von Unicode zu einer Japanischen Codeseite ordnen WideCharToMultiByte- und andere Konvertierungsfunktionen sowohl umgekehrten Schrägstrich (U+005C) als auch das normale Unicode-Yen-Symbol (U+00A5) diesem Zeichen zu. Aus Sicherheitsgründen sollten Ihre Anwendungen das Zeichen U+00A5 in einer Unicode-Zeichenfolge nicht zulassen, die möglicherweise als FAT-Dateiname konvertiert werden kann. Weitere Informationen finden Sie unter Sicherheitsüberlegungen: Internationale Features.

 

Unicode in der Windows-API

Sicherheitsüberlegungen: Internationale Features