Partager via


Jeux de caractères utilisés dans les noms de fichiers

NTFS stocke les noms de fichiers dans Unicode. En revanche, les anciens systèmes de fichiers FAT12, FAT16 et FAT32 utilisent le jeu de caractères OEM. Pour plus d’informations, consultez Pages de codes.

Les applications non Unicode qui créent des fichiers FAT doivent parfois utiliser les fonctions de conversion de la bibliothèque runtime C standard pour traduire entre le jeu de caractères de la page de code Windows et le jeu de caractères de page de code OEM. Avec les implémentations Unicode des fonctions de système de fichiers, il n’est pas nécessaire d’effectuer de telles traductions.

Votre application peut utiliser des types de chaînes génériques, comme décrit dans Types de données Windows pour les chaînes. L’application peut également utiliser des prototypes de fonction génériques à l’aide des techniques décrites dans Conventions pour les prototypes de fonction. Pour les types de chaîne génériques ou les prototypes de fonction générique, votre application peut utiliser un fichier source unique pour compiler une version Unicode ou non Unicode. Pour ce faire, l’application fournit des macros pour les fonctions qui ne sont pas appelées lors de la compilation pour Unicode.

Dans les systèmes de fichiers NTFS et FAT, les caractères de nom de fichier spéciaux sont : '\', '/', '.', '?' et '*'. Sur les pages de code OEM, ces caractères spéciaux se trouvent dans la plage ASCII de caractères (0x00 à 0x7F). Leurs équivalents Unicode sont les mêmes valeurs sous forme de 2 octets, 0x0000 à 0x007F.

Attention

La page de code Windows et les jeux de caractères de page de code OEM utilisés sur les systèmes d’exploitation en japonais contiennent le symbole Yen (¥) au lieu d’une barre oblique inverse (\). Ainsi, le symbole Yen est un caractère interdit pour les systèmes de fichiers NTFS et FAT. Lors du mappage d’Unicode à une page de code en japonais, WideCharToMultiByte et d’autres fonctions de conversion mappent la barre oblique inverse (U+005C) et le symbole Unicode Yen normal (U+00A5) à ce même caractère. Pour des raisons de sécurité, vos applications ne doivent généralement pas autoriser le caractère U+00A5 dans une chaîne Unicode qui peut être convertie en tant que nom de fichier FAT. Pour plus d’informations, consultez Considérations relatives à la sécurité : fonctionnalités internationales.

 

Unicode dans l'API Windows

Considérations relatives à la sécurité : Fonctionnalités internationales