我想从一些随机的Unicode字符串(mich可能只包含任何内容)创建一个理智/安全的应用程序包名称(即有些可读,没有"奇怪"字符等)。
(对我来说无关紧要,函数是Cocoa,ObjC,Python等)
(这与文件名问题和包名称问题有关,但是包标识符更具限制性。我认为它甚至不能包含空格,我也想删除点并放置我自己的前缀。)
我认为Xcode还有一些功能可以从应用程序名称自动执行。 也许Cocoa中有一些标准功能可以做到这一点。
可能从任何(不安全)字符串复制Create(sane / safe)文件名
@bgporter:这不是重复的。 你没看错吗?
对不起 - 发痒触发手指。
捆绑标识符是反向URL形式(保证全局唯一性):
例如,com.apple.xcode
所以你真的需要一个域名,那么你可以在下面创建你喜欢的任何方案。
鉴于此,以及输入中字符的一些知识,您可以扫描输入组成一个只包含您想要的位的新字符串,或者使用stringByReplacingOccurrencesOfString: withString:等方法,如果您愿意,也可以使用lowercaseString。
包标识符中允许的字符在"属性列表文档"中命名为:
The bundle ID string must be a uniform type identifier (UTI) that contains only alphanumeric (A-Z,a-z,0-9), hyphen (-), and period (.) characters. The string should also be in reverse-DNS format.
我不能使用字符串替换方法。 根本无法检查那里的所有无效字符,因为它们太多了(Unicode有很多字符......)。
此外,"扫描你的输入组成一个只有你想要的位的新字符串"部分是我没有真正回答的主要问题(即如何做到这一点;特别是,如何知道哪些位有效)。
(给出输入中字符的一些知识)