OS X 檔案名稱中禁止使用哪些字元?

OS X 檔案名稱中禁止使用哪些字元?

OS X 上的檔案名稱和路徑中是否存在不允許使用的字元清單?

答案1

?被允許。

HFS+ 禁止僅0x00( NUL) 和。:

:然而,在基於 POSIX 的軟體中切換為/

替代文字 替代文字

感謝 Graham Lee 糾正了我的錯誤!

答案2

正如 Daniel Beck 所說,NUL 和“:”(在 POSIX 上下文中又名“/”)是被禁止的;然而,事情比這更複雜。 HFS+ 檔案名稱必須以 UTF-8 格式存儲,以完全分解的形式,並按規範順序儲存組成字元(請參閱TN1150)。所以你的問題的答案取決於你所說的「性格」的意思:

如果您對構成檔案名稱的位元組序列感興趣,則禁止使用任何無效 UTF-8(或未正確分解)的序列。

如果您指的是 unicode 代碼點,則該分解規則仍然禁止任何表示重音字元的點(必須將其儲存為基本字母 + 組合重音)(請參閱TN1150桌子)。

答案3

根據維基百科,http://en.wikipedia.org/wiki/HFS_Plus允許任何 unicode 字符,包括 NUL。但許多應用程式會施加自己的限制,例如“/”等。

答案4

在 MacOS 上,至少 HFS 和 exFAT 安裝的檔案系統似乎不支援以下 UTF-16 字元序列 0x61(“a”)0x30a(環過 -https://www.compart.com/en/unicode/U+030A),查看位元組交換為little endian後檔案名稱中的位元組序列,變成這樣:

“61 00 0a 03”

我猜問題是這個位元組序列轉義為 0xE5(“å”),這似乎是 MacOS 中的一些通用空白字元。

除非磁碟被寫入保護,否則此類文件目錄被立即刪除。在斯堪的納維亞半島執法部門工作的人們,在部門之間傳送文件和文件之前可能應該仔細閱讀本文!

這個問題何時開始尚不清楚,但可能自 70 年代初以來一直如此(記住 VAX :-)

使用 Linux、FreeBSD 或 Windows 電腦最容易建立這些檔案和目錄名稱。只需開啟檔案總管並建立包含上述字元的文件或目錄。然後將便攜式磁碟連接到 MacOS 計算機,看看會發生什麼。

為了您的方便,我嘗試在此處貼上損壞的字元以及這些“變音符號”的更多示例,因為它在德語中被稱為:

å b̊ c̊

螢幕截圖

相關內容