Conjuntos de caracteres usados em nomes de arquivo

O NTFS armazena nomes de arquivo no Unicode. Por outro lado, os sistemas de arquivos FAT12, FAT16 e FAT32 mais antigos usam o conjunto de caracteres OEM. Para obter mais informações, consulte Páginas de Código.

Aplicativos não Unicode que criam arquivos FAT às vezes precisam usar as funções de conversão de biblioteca de runtime C padrão para traduzir entre o conjunto de caracteres da página de código Windows e o conjunto de caracteres da página de código OEM. Com implementações Unicode das funções do sistema de arquivos, não é necessário executar essas traduções.

Seu aplicativo pode usar tipos de cadeia de caracteres genéricos, conforme descrito em Windows tipos de dados para cadeias de caracteres. O aplicativo também pode usar protótipos de função genérica usando técnicas descritas em Convenções para Protótipos de Função. Para tipos de cadeia de caracteres genéricos ou protótipos de função genérica, seu aplicativo pode usar um único arquivo de origem para compilar uma versão Unicode ou não Unicode. Para permitir isso, o aplicativo fornece macros para funções que não são invocadas ao compilar para Unicode.

Nos sistemas de arquivos NTFS e FAT, os caracteres de nome de arquivo especial são: '\', '/', '.', '?' e '*'. Em páginas de código OEM, esses caracteres especiais estão no intervalo de caracteres ASCII (0x00 até 0x7F). Seus equivalentes Unicode são os mesmos valores em um formulário de 2 bytes, 0x0000 até 0x007F.

Cuidado

Windows code page and OEM code page character sets used on Japanese-language operating systems contain the Yen symbol (¥) instead of a backslash (\). Portanto, o símbolo Yen é um caractere proibido para sistemas de arquivos NTFS e FAT. Ao mapear o Unicode para uma página de código em língua japonesa, WideCharToMultiByte e outras funções de conversão mapeiam a barra invertida (U+005C) e o símbolo Unicode Yen normal (U+00A5) para esse mesmo caractere. Por motivos de segurança, seus aplicativos normalmente não devem permitir o caractere U+00A5 em uma cadeia de caracteres Unicode que pode ser convertida para uso como um nome de arquivo FAT. Para obter mais informações, consulte Considerações de segurança: recursos internacionais.

 

Unicode na API do Windows

Considerações de segurança: recursos internacionais