iOS中的Unicode文件名

iOS中的Unicode文件名,ios,unicode,filenames,Ios,Unicode,Filenames,是否可以在iOS内的资产(图像)文件名中使用全套(比如)中文?如果没有,在文件名、字符串搜索和其他文件处理活动中支持大语言的哪些部分 iOS和Mac OS当前使用,它支持文件名中的完整Unicode。这基本上意味着任何字符,包括汉语和其他人类语言。文件系统最多允许255个字符,对于大多数语言来说,这大约是255个代码点。(我注意到长度是基于UTF16编码字符的。有些字符需要超过16位才能编码,比如表情符号,你也可以使用,但是你可以使用更少的字符。) iOS上的文件API(NSFileManage

是否可以在iOS内的资产(图像)文件名中使用全套(比如)中文?如果没有,在文件名、字符串搜索和其他文件处理活动中支持大语言的哪些部分

iOS和Mac OS当前使用,它支持文件名中的完整Unicode。这基本上意味着任何字符,包括汉语和其他人类语言。文件系统最多允许255个字符,对于大多数语言来说,这大约是255个代码点。(我注意到长度是基于UTF16编码字符的。有些字符需要超过16位才能编码,比如表情符号,你也可以使用,但是你可以使用更少的字符。)

iOS上的文件API(NSFileManager等)应该能够容纳Unicode字符串,而无需任何额外工作。请注意,Unicode序列是以特定方式规范化的:例如,
字符可以在Unicode中以多种不同的方式表示,但将以标准化方式分解为文件名

底线是,只要长度合理,就可以随意使用Unicode字符串作为文件名。因为超长Unicode名称将开始以一种稍微不可预测的方式遇到长度问题(实际上非常复杂,不需要计算),所以您可能应该设置一些合理的自我施加的长度限制


APFS是苹果正在开发的下一代文件系统,不久将出现在iOS上。我找不到有关文件名编码的信息,但可以公平地假设它将支持HFS+支持的任何东西,如果不是更支持的话。

iOS文件系统使用区分大小写的HFSX,它是HFS Plus的一个变体,并对文件名和字符编码使用相同的规则

这些规则在本手册的几个章节中列出

重要的考虑是:

  • 如Technote 1150一节所述,每个文件或文件夹名最多可使用255个16位Unicode字符
  • 文件系统在其底层使用Unicode v2.0(这是固定的),字符串必须以完全分解的规范顺序存储。这就排除了某些“等价形式”的使用——即它们必须转换为分解形式。技术说明1150一节对此进行了详细说明。本节详细介绍了其他问题,应仔细阅读
  • 在此列表中可以找到非法字符列表
  • 冒号字符“
    ”用作目录分隔符,在文件和文件夹名称中无效

你试过了吗?它有效吗?理论上,整个中文“字母表”应该有效。。。但作为一个不说/写/读的非中国人,这是一项艰巨的任务。还有其他语言的问题。。。我也不知道。所以,没有,我没有试过。我无法进行详尽(或准确)的测试。我希望有人能给我一个权威性的参考或回答。我想,也许是错误的,苹果一直在谈论支持unicode和本地化,而他们的文件系统完全支持unicode和本地化,这意味着他们支持所有语言和所有字符集。但我不想依赖于这个假设,如果没有来自一个对这些问题了解得多的消息来源的某种确定性。这几乎是除我之外的任何人都可以使用的。是的,unicode字符是完全支持的。