Share via


파일 이름에 사용되는 문자 집합

NTFS는 파일 이름을 유니코드에 저장합니다. 반면 이전 FAT12, FAT16 및 FAT32 파일 시스템은 OEM 문자 집합을 사용합니다. 자세한 내용은 코드 페이지 참조하세요.

FAT 파일을 만드는 유니코드가 아닌 애플리케이션은 표준 C 런타임 라이브러리 변환 함수를 사용하여 Windows 코드 페이지 문자 집합과 OEM 코드 페이지 문자 집합 간에 변환해야 하는 경우가 있습니다. 파일 시스템 함수의 유니코드 구현에서는 이러한 변환을 수행할 필요가 없습니다.

애플리케이션은 문자열에 대한 Windows 데이터 형식에 설명된 대로 제네릭 문자열 형식을 사용할 수 있습니다. 또한 애플리케이션은 함수 프로토타입 규칙에 설명된 기술을 사용하여 제네 릭 함수 프로토타입을 사용할 수도 있습니다. 제네릭 문자열 형식 또는 제네릭 함수 프로토타입의 경우 애플리케이션은 단일 소스 파일을 사용하여 유니코드 또는 유니코드가 아닌 버전을 컴파일할 수 있습니다. 이를 위해 애플리케이션은 유니코드용으로 컴파일할 때 호출되지 않는 함수에 대한 매크로를 제공합니다.

NTFS 및 FAT 파일 시스템 모두에서 특수 파일 이름 문자는 '\', '/', '.', '?', '*'입니다. OEM 코드 페이지에서 이러한 특수 문자는 ASCII 문자 범위(0x00~0x7F)에 있습니다. 해당 유니코드는 0x007F 통해 0x0000 2 바이트 형식의 동일한 값입니다.

주의

일본어 운영 체제에서 사용되는 Windows 코드 페이지 및 OEM 코드 페이지 문자 집합에는 백슬래시(\) 대신 Yen 기호(\)가 포함됩니다. 따라서 Yen 기호는 NTFS 및 FAT 파일 시스템에 대해 금지된 문자입니다. 유니코드를 일본어 코드 페이지에 매핑할 때 WideCharToMultiByte 및 기타 변환 함수는 백슬래시(U+005C)와 일반 유니코드 Yen 기호(U+00A5)를 동일한 문자에 매핑합니다. 보안상의 이유로 애플리케이션은 일반적으로 FAT 파일 이름으로 사용하기 위해 변환될 수 있는 유니코드 문자열에서 U+00A5 문자를 허용하지 않아야 합니다. 자세한 내용은 보안 고려 사항: 국가별 기능을 참조하세요.

 

Windows API의 유니코드

보안 고려 사항: 국가별 기능