如何在 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 次瀏覽

開始您的 職業生涯

完成課程以獲取認證

開始
廣告