Udostępnij za pośrednictwem


Zestawy znaków używane w nazwach plików

System plików NTFS przechowuje nazwy plików w formacie Unicode. Z kolei starsze systemy plików FAT12, FAT16 i FAT32 używają zestawu znaków OEM. Aby uzyskać więcej informacji, zobacz Code Pages.

Aplikacje inne niż Unicode, które tworzą pliki FAT, czasami muszą używać standardowych funkcji konwersji biblioteki środowiska uruchomieniowego języka C do tłumaczenia między zestawem znaków strony kodowej systemu Windows a zestawem znaków strony kodowej OEM. W przypadku implementacji Unicode funkcji systemu plików nie jest konieczne wykonanie takich tłumaczeń.

Aplikacja może używać typów ciągów ogólnych, zgodnie z opisem w Typy danych systemu Windows dla ciągów. Aplikacja może również używać prototypów funkcji ogólnych przy użyciu technik opisanych w Conventions for Function Prototypes. W przypadku typowych typów ciągów lub prototypów funkcji ogólnych aplikacja może użyć pojedynczego pliku źródłowego do skompilowania formatu Unicode lub wersji innej niż Unicode. Aby to umożliwić, aplikacja udostępnia makra dla funkcji, które nie są wywoływane podczas kompilowania dla unicode.

W systemach plików NTFS i FAT znaki nazwy pliku specjalnego to: "\", "/", ".", "?" i "*". Na stronach kodu OEM te znaki specjalne znajdują się w zakresie znaków ASCII (0x00 przez 0x7F). Ich odpowiedniki Unicode są tymi samymi wartościami w postaci 2 bajtów, 0x0000 przez 0x007F.

Ostrożność

Strony kodowej systemu Windows i zestawy znaków strony kodowej OEM używane w systemach operacyjnych języka japońskiego zawierają symbol jenów (}) zamiast ukośnika odwrotnego (\). W związku z tym symbol jena jest zabronionym znakiem dla systemów plików NTFS i FAT. Podczas mapowania unicode na stronę kodową języka japońskiego WideCharToMultiByte i innych funkcji konwersji mapuje zarówno ukośnik odwrotny (U+005C) i normalny symbol Unicode Yen (U+00A5) na ten sam znak. Ze względów bezpieczeństwa aplikacje nie powinny zwykle zezwalać na znak U+00A5 w ciągu Unicode, który może być konwertowany do użycia jako nazwa pliku FAT. Aby uzyskać więcej informacji, zobacz Zagadnienia dotyczące zabezpieczeń: Funkcje międzynarodowe.

 

Unicode w interfejsie API systemu Windows

zagadnienia dotyczące zabezpieczeń : funkcje międzynarodowe