API 기반 웹 애플리케이션을 개발할 때 여러 웹 서비스 및 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 = @"https://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 = " https://www.myService.com/search.jsp?param= name" print(getURL(sURL))
결과적으로 다음이 인쇄됩니다.
https://www.myService.com/search.jsp?param= name