Läs på engelska

Dela via


Teckenuppsättningar som används i filnamn

NTFS lagrar filnamn i Unicode. De äldre FAT12-, FAT16- och FAT32-filsystemen använder däremot OEM-teckenuppsättningen. Mer information finns i kodsidor.

Program som inte är Unicode-program som skapar FAT-filer måste ibland använda standardfunktionerna för konvertering av C-körningsbibliotek för att översätta mellan Teckenuppsättningen för Windows-kodsidan och TECKENuppsättningen för OEM-kodsidan. Med Unicode-implementeringar av filsystemfunktionerna är det inte nödvändigt att utföra sådana översättningar.

Ditt program kan använda allmänna strängtyper enligt beskrivningen i Windows-datatyper för strängar. Programmet kan också använda generiska funktionsprototyper med hjälp av tekniker som beskrivs i Konventioner för funktionsprototyper. För antingen generiska strängtyper eller generiska funktionsprototyper kan ditt program använda en enda källfil för att kompilera antingen en Unicode- eller en icke-Unicode-version. För att tillåta detta tillhandahåller programmet makron för funktioner som inte anropas vid kompilering för Unicode.

I både NTFS- och FAT-filsystemen är de särskilda filnamnstecken: '\', '/', '.', '?' och '*'. På OEM-kodsidor finns dessa specialtecken i ASCII-intervallet med tecken (0x00 till och med 0x7F). Deras Unicode-motsvarigheter är samma värden i ett 2-bytesformulär, 0x0000 via 0x007F.

Varning

Teckenuppsättningar för Windows-kodsidor och OEM-kodsidor som används i japanska operativsystem innehåller yensymbolen (¥) i stället för ett omvänt snedstreck (\). Yen-symbolen är därför ett förbjudet tecken för NTFS- och FAT-filsystem. När unicode mappas till en kodsida på japanska mappar WideCharToMultiByte och andra konverteringsfunktioner både omvänt snedstreck (U+005C) och den normala Unicode Yen-symbolen (U+00A5) till samma tecken. Av säkerhetsskäl bör dina program vanligtvis inte tillåta tecknet U+00A5 i en Unicode-sträng som kan konverteras för användning som ett FAT-filnamn. Mer information finns i säkerhetsöverväganden: Internationella funktioner.

 

Unicode i Windows API-

säkerhetsöverväganden: Internationella funktioner