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 standardmäßigen Konvertierungsfunktionen der C-Laufzeitbibliothek verwenden, um zwischen dem Windows-Codepage-Zeichensatz und dem OEM-Codepage-Zeichensatz 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 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 zur Verfügung, die beim Kompilieren für Unicode nicht aufgerufen werden.

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

Achtung

Windows Codepage- und OEM-Codepage-Zeichensätze, die auf Betriebssystemen in japanischer Sprache verwendet werden, enthalten anstelle eines zurückgestrichenen Schrägstrichs ( ) das Symbol "Symbol". \ Daher ist das Symbol "Symbols" ein unzulässiges Zeichen für NTFS- und FAT-Dateisysteme. Beim Zuordnen von Unicode zu einer Codepage in japanischer Sprache ordnen WideCharToMultiByte und andere Konvertierungsfunktionen demselben Zeichen sowohl einen schrägen Schrägstrich (U+005C) als auch das normale Unicode-Symbol (U+00A5) zu. Aus Sicherheitsgründen sollten Ihre Anwendungen in der Regel nicht das Zeichen U+00A5 in einer Unicode-Zeichenfolge zulassen, die zur Verwendung als FAT-Dateiname konvertiert werden kann. Weitere Informationen finden Sie unter Sicherheitsüberlegungen: Internationale Features.

Unicode in der Windows-API

Sicherheitsüberlegungen: Internationale Features