Share via


In Dateinamen verwendete Zeichensätze

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

Nicht-Unicode-Anwendungen, die FAT-Dateien erstellen, müssen manchmal die Konvertierungsfunktionen der Standard-C-Laufzeitbibliothek verwenden, um zwischen dem Windows-Codepagezeichensatz und dem OEM-Codepagezeichensatz zu übersetzen. Bei Unicode-Implementierungen der Dateisystemfunktionen ist es nicht erforderlich, solche Übersetzungen durchzuführen.

Ihre Anwendung kann generische Zeichenfolgentypen verwenden, wie unter Windows-Datentypen für Zeichenfolgen beschrieben. Die Anwendung kann auch generische Funktionsprototypen mithilfe von Techniken verwenden, die unter Konventionen für Funktionsprototypen beschrieben werden. Für generische Zeichenfolgentypen oder generische Funktionsprototypen kann Ihre Anwendung eine einzelne Quelldatei verwenden, um entweder eine 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.

Achtung

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 Codepage ordnen WideCharToMultiByte und andere Konvertierungsfunktionen sowohl umgekehrten Schrägstrich (U+005C) als auch das normale Unicode-Yen-Symbol (U+00A5) demselben Zeichen zu. Aus Sicherheitsgründen sollten Ihre Anwendungen in der Regel das Zeichen U+00A5 in einer Unicode-Zeichenfolge nicht zulassen, die für die Verwendung als FAT-Dateinamen konvertiert werden kann. Weitere Informationen finden Sie unter Sicherheitsüberlegungen: Internationale Features.

 

Unicode in der Windows-API

Sicherheitsüberlegungen: Internationale Features