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