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),查看字节交换为小端之后文件名中的字节序列,变成了这样:

“61 00 0a 03”

我猜问题在于这个字节序列转义为 0xE5(“å”),它看起来像是 MacOS 中的一些通用的白色字符。

除非磁盘被写保护,否则此类文件目录会被立即删除。在斯堪的纳维亚半岛执法部门工作的人们,在部门间传递文件和文档之前,可能应该仔细阅读一下这篇文章!

该问题何时出现尚不清楚,但可能从 70 年代初就一直存在了(记得 VAX :-)

使用 Linux、FreeBSD 或 Windows 计算机最容易创建这些文件和目录名称。只需打开文件资源管理器并创建包含上述字符的文档或目录。然后将便携式磁盘连接到 MacOS 计算机,看看会发生什么。

为了您的方便,我尝试在此处粘贴损坏的字符以及一些德语中所谓的“变音符号”的示例:

å b̊ c̊

截屏

相关内容