我在谷歌上搜索这个有点困难。
Objective-C有编码URI组件的等效方法吗?
http://www.w3schools.com/jsref/jsref_encodeuricomponent.asp
这似乎是一个非常常见的用例,但我在Objective-C中找不到任何关于它的文档。
谢谢。
我在谷歌上搜索这个有点困难。
Objective-C有编码URI组件的等效方法吗?
http://www.w3schools.com/jsref/jsref_encodeuricomponent.asp
这似乎是一个非常常见的用例,但我在Objective-C中找不到任何关于它的文档。
谢谢。
4条答案
按热度按时间kuarbcqp1#
-[NSString stringByAddingPercentEscapesUsingEncoding:]
是最简单的方法。l5tcr1uw2#
当然,你也可以选择这种方法,希望对你有所帮助。
uplii1fm3#
现在
stringByAddingPercentEscapesUsingEncoding:
已弃用。以下是iOS 7+中encodeURIComponent
的等效版本:bfnvny8b4#
使用
CFURLCreateStringByAddingPercentEscapes
或stringByAddingPercentEscapesUsingEncoding
并不理想,因为它们是不推荐使用的方法。戴夫的回答是正确的,但不够明确。
我们想调用
stringByAddingPercentEncodingWithAllowedCharacters
,但需要选择一个字符集。不管我们的直觉怎么说,NSCharacterSet.URLQueryAllowedCharacterSet
实际上不是一个好的选择。它引用URL的整个查询部分,而不仅仅是查询参数的值,因此它也允许像?
或&
这样的字符,这些字符在这里是无效的。您需要的是根据文档手动构建允许的字符集并使用它。encodeURIComponent()
允许的字符是:这给了我们这个解决方案: