Set Karakter yang Digunakan dalam Nama File

NTFS menyimpan nama file di Unicode. Sebaliknya, sistem file FAT12, FAT16, dan FAT32 yang lebih lama menggunakan set karakter OEM. Untuk informasi selengkapnya, lihat Halaman Kode.

Aplikasi non-Unicode yang membuat file FAT terkadang harus menggunakan fungsi konversi pustaka runtime C standar untuk menerjemahkan antara kumpulan karakter halaman kode Windows dan kumpulan karakter halaman kode OEM. Dengan implementasi Unicode dari fungsi sistem file, tidak perlu melakukan terjemahan tersebut.

Aplikasi Anda dapat menggunakan jenis string generik, seperti yang dijelaskan dalam Jenis Data Windows untuk String. Aplikasi ini juga dapat menggunakan prototipe fungsi generik menggunakan teknik yang dijelaskan dalam Konvensi untuk Prototipe Fungsi. Untuk jenis string generik atau prototipe fungsi generik, aplikasi Anda dapat menggunakan satu file sumber untuk mengkompilasi versi Unicode atau non-Unicode. Untuk memperbolehkan hal ini, aplikasi menyediakan makro untuk fungsi yang tidak dipanggil saat mengkompilasi untuk Unicode.

Dalam sistem file NTFS dan FAT, karakter nama file khusus adalah: '\', '/', '.', '?', dan '*'. Pada halaman kode OEM, karakter khusus ini berada dalam rentang karakter ASCII (0x00 melalui 0x7F). Ekuivalen Unicode mereka adalah nilai yang sama dalam bentuk 2-byte, 0x0000 melalui 0x007F.

Perhatian

Halaman kode Windows dan set karakter halaman kode OEM yang digunakan pada sistem operasi bahasa Jepang berisi simbol Yen (¥) alih-alih garis miring terbelakang (\). Dengan demikian, simbol Yen adalah karakter yang dilarang untuk sistem file NTFS dan FAT. Saat memetakan Unicode ke halaman kode bahasa Jepang, WideCharToMultiByte dan fungsi konversi lainnya memetakan garis miring terbalik (U+005C) dan simbol Yen Unicode normal (U+00A5) ke karakter yang sama ini. Untuk alasan keamanan, aplikasi Anda biasanya tidak boleh mengizinkan karakter U+00A5 dalam string Unicode yang mungkin dikonversi untuk digunakan sebagai nama file FAT. Untuk informasi selengkapnya, lihat Pertimbangan Keamanan: Fitur Internasional.

 

Unicode di Windows API

Pertimbangan Keamanan: Fitur Internasional