檔案名中使用的字元集

NTFS 會將檔案名儲存在 Unicode 中。 相反地,較舊的 FAT12、FAT16 和 FAT32 檔案系統會使用 OEM 字元集。 如需詳細資訊,請參閱字碼頁

建立 FAT 檔案的非 Unicode 應用程式有時必須使用標準 C 執行時間程式庫轉換函式,在 Windows 字碼頁字元集與 OEM 字碼頁字元集之間進行轉譯。 使用檔案系統函式的 Unicode 實作,就不需要執行這類翻譯。

您的應用程式可以使用泛型字串類型,如 適用于字串的 Windows 資料類型中所述。 應用程式也可以使用函式 原型慣例中所述的技術,使用泛型函式原型。 針對泛型字串類型或泛型函式原型,您的應用程式可以使用單一原始程式檔來編譯 Unicode 或非 Unicode 版本。 為了允許此作業,應用程式會為編譯 Unicode 時未叫用的函式提供宏。

在 NTFS 和 FAT 檔案系統中,特殊檔案名字元為:'\'、'/'、'.'、'?' 和 '*'。 在 OEM 字碼頁中,這些特殊字元位於 (0X00到0x7F) 的 ASCII 字元範圍中。 其 Unicode 對等專案是 2 位元組形式的相同值,0x0000到0x007F。

警告

在日文語言作業系統上使用的 Windows 字碼頁和 OEM 字碼頁字元集包含 [ (] 符號 \) ,而不是反斜線 (\) 。 因此,NTFS 和 FAT 檔案系統是禁止的字元。 將 Unicode 對應至日文語言字碼頁時, WideCharToMultiByte 和其他轉換函式會對應反斜線 (U+005C) 和一般 Unicode 底線符號 (U+00A5) 到這個相同的字元。 基於安全性考慮,您的應用程式通常不允許 Unicode 字串中的字元 U+00A5,而該字串可能會轉換成 FAT 檔案名。 如需詳細資訊,請參閱 安全性考慮:國際功能

 

Windows API 中的 Unicode

安全性考慮:國際功能