【发布时间】:2014-08-27 20:24:39
【问题描述】:
给定任何 .NET 字符串,在任何操作系统上将其转换为安全文件名的 C# 算法是什么? Windows、iOS、Android、Linux?目标是尽可能多地保留原始字符串,同时使其在任何平台上都可以安全地用作文件名。
【问题讨论】:
-
Base36 可能运行良好。你不会想假设你的文件系统是区分大小写的。
-
您还需要考虑文件名长度,因为它因系统而异。
-
我不知道您可以使用任何内置方法。我自己生成了从 Windows 到 Linux 的检查。
-
你对转换有什么限制吗?像“应该类似于原始字符串”或“与原始字符串的一对一映射”或长度或字符集限制?在非常通用的情况下,转换与创建新的 guid 一样有用...就像将 10K 长的中文字符串转换为纯 ASCII ...
-
是的,我们的目标是尽可能保留原始字符串,同时使其在任何平台上都可以安全地用作文件名。
标签: c# ios xamarin cross-platform