Cocoa 在文件NSURL的末尾附加带有斜杠和其他不安全字符的文件名?

Cocoa 在文件NSURL的末尾附加带有斜杠和其他不安全字符的文件名?,cocoa,uikit,nsurl,Cocoa,Uikit,Nsurl,我有一个指向目录的NSURL。我还有一个文件名,里面有各种疯狂的字符。(向前斜杠、向后斜杠、句点等)我想将文件名附加到URL以创建文件路径。不幸的是,如果我使用标准的URLByAppendingPathComponent:样式方法,我的疯狂文件名不会正确转义!例如,NSURL将任何前斜杠视为路径分隔符,而我希望用文件名的其余部分对其进行百分比编码。但是,如果我预先对文件名进行百分比编码,NSURL会对百分比符号进行双重编码,从而导致文件名成为垃圾 执行此任务的正确和安全的方法是什么?如果您能提供

我有一个指向目录的
NSURL
。我还有一个文件名,里面有各种疯狂的字符。(向前斜杠、向后斜杠、句点等)我想将文件名附加到URL以创建文件路径。不幸的是,如果我使用标准的
URLByAppendingPathComponent:
样式方法,我的疯狂文件名不会正确转义!例如,
NSURL
将任何前斜杠视为路径分隔符,而我希望用文件名的其余部分对其进行百分比编码。但是,如果我预先对文件名进行百分比编码,
NSURL
会对百分比符号进行双重编码,从而导致文件名成为垃圾


执行此任务的正确和安全的方法是什么?

如果您能提供一个在问题中给您带来麻烦的文件名示例,这将非常有用。另外,您有没有看过处理百分比编码的
NSString
方法?导航到该页面并搜索百分比-有几种方法可能会有所帮助。例如文件名为“/test/12.3?”-技术上合法,但不太美观。我尝试使用百分比编码方法,但不幸的是,我还没有找到从现有NSURL和百分比编码文件名中获取运行文件://URL的正确方法。似乎没有办法将已编码的路径组件传递给NSURL—它总是对百分比符号进行重新编码。我尝试手动将我的文件名与NSURL的absoluteString合并,但由于某些原因,它无法工作。如果您能提供一个在问题中给您带来麻烦的文件名示例,这将非常有用。另外,您有没有看过处理百分比编码的
NSString
方法?导航到该页面并搜索百分比-有几种方法可能会有所帮助。例如文件名为“/test/12.3?”-技术上合法,但不太美观。我尝试使用百分比编码方法,但不幸的是,我还没有找到从现有NSURL和百分比编码文件名中获取运行文件://URL的正确方法。似乎没有办法将已编码的路径组件传递给NSURL—它总是对百分比符号进行重新编码。我尝试手动将我的文件名与NSURL的absoluteString合并,但由于某些原因,它无法工作。