首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS中的Unicode文件名

iOS中的Unicode文件名
EN

Stack Overflow用户
提问于 2016-10-20 23:32:40
回答 2查看 1.3K关注 0票数 10

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-01 10:34:45

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

这些规则在苹果Technote 1150的几个部分中进行了阐述。

重要的考虑因素是:

  • 如Technote 1150的HFS加号部分所述,每个文件或文件夹名称最多可使用255个16位Unicode字符。
  • 基本级别的文件系统使用Unicode v2.0 (这是固定的),字符串必须按照完全分解的规范顺序存储。这就排除了某些“等价形式”的使用--即它们必须转换为分解形式。这一点在Technote 1150的Unicode精密度部分中有详细的描述。本节详细说明了其他问题,应仔细阅读。
  • 在此分解表中可以找到非法字符的列表。
  • 冒号字符“:”用作目录分隔符,在文件和文件夹名称中无效。
票数 2
EN

Stack Overflow用户

发布于 2016-11-01 10:09:57

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

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

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

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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40166118

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档