Computer >> Máy Tính >  >> Lập trình >> IOS

Làm cách nào để mã hóa URL một chuỗi (NSString) trong iPhone?

Khi phát triển các ứng dụng web dựa trên API, chúng tôi chắc chắn cần phải kết nối với Nhiều dịch vụ web và URL. Url có thể chứa ký tự đặc biệt, cụm từ tìm kiếm, truy vấn, tiêu đề và nhiều thứ khác tùy thuộc vào dịch vụ chúng tôi cần. Đó là lý do tại sao chúng ta cần có một số loại mã hóa để URL chúng ta đang tạo và URL đang được gọi giống nhau.

Để đạt được điều tương tự với Objective C, chúng ta có thể sử dụng -

#import "NSString+URLEncoding.h"
@implementation NSString (URLEncoding)
-(NSString *)urlEncodeUsingEncoding:(NSStringEncoding)encoding {
   return (NSString *)CFURLCreateStringByAddingPercentEscapes(NULL,
   (CFStringRef)self, NULL, (CFStringRef)@"!*'\"();:@&=+$,/?%#[]% ", CFStringConvertNSStringEncodingToEncoding(encoding));
}
@end

Một cách khác để đạt được mã hóa URL trong Mục tiêu C là -

NSString *sUrl = @"https://www.myService.com/search.jsp?param= name";
NSString *encod = [sUrl stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding];

Tương tự, mã hóa URL có thể đạt được bằng Swift như -

func getURL(str: String ) {
   return str.addingPercentEncoding(withAllowedCharacters: .urlHostAllowed)
}

Điều này sẽ trả về một chuỗi URL được mã hóa và có thể được sử dụng như,

var sURL = " https://www.myService.com/search.jsp?param= name"
print(getURL(sURL))

Kết quả là, kết quả sẽ in ra sau đây.

https://www.myService.com/search.jsp?param= name