如何在 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

更新时间:2020 年 6 月 27 日

528 次浏览

开始您的 职业生涯

完成课程以获取认证

开始
广告