如何在 iPhone 中对字符串 (NSString) 进行 URL 编码?
当开发基于 API 的 Web 应用程序时,我们肯定需要与多个 Web 服务和 URL 交互。URL 可能包含特殊字符、搜索词、查询、页眉和许多其他内容,具体取决于我们需要的服务。这就是为什么我们需要某种类型的编码,以便我们创建的 URL 和被调用的 URL 相同。
要使用 Objective C 实现相同的功能,我们可以使用 −
#import "NSString+URLEncoding.h" @implementation NSString (URLEncoding) -(NSString *)urlEncodeUsingEncoding:(NSStringEncoding)encoding { return (NSString *)CFURLCreateStringByAddingPercentEscapes(NULL, (CFStringRef)self, NULL, (CFStringRef)@"!*'\"();:@&=+$,/?%#[]% ", CFStringConvertNSStringEncodingToEncoding(encoding)); } @end
在 Objective C 中实现 URL 编码的另一种方法是 −
NSString *sUrl = @"http://www.myService.com/search.jsp?param= name"; NSString *encod = [sUrl stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding];
同样,URL 编码可以在 Swift 中实现,如下所示 −
func getURL(str: String ) { return str.addingPercentEncoding(withAllowedCharacters: .urlHostAllowed) }
它将返回一个经过编码的 URL 字符串,可以用它这样的方式使用,
var sURL = " http://www.myService.com/search.jsp?param= name" print(getURL(sURL))
它将打印以下内容作为结果。
http://www.myService.com/search.jsp?param= name
广告