Computer >> 컴퓨터 >  >> 프로그램 작성 >> IOS

iPhone에서 문자열(NSString)을 URL 인코딩하는 방법은 무엇입니까?

<시간/>

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