เมื่อพัฒนาเว็บแอปพลิเคชันที่ใช้ API เราจำเป็นต้องเชื่อมต่อกับบริการเว็บและ URL ที่หลากหลาย URL อาจมีอักขระพิเศษ ข้อความค้นหา ข้อความค้นหา ส่วนหัว และอื่นๆ อีกมากมาย ขึ้นอยู่กับบริการที่เราต้องการ นั่นเป็นเหตุผลที่เราจำเป็นต้องมีการเข้ารหัสบางอย่างเพื่อให้ URL ที่เรากำลังสร้างและ URL ที่เรียกนั้นเหมือนกัน
เพื่อให้บรรลุเช่นเดียวกันกับวัตถุประสงค์ C เราสามารถใช้ −
#import "NSString+URLEncoding.h" @implementation NSString (URLEncoding) -(NSString *)urlEncodeUsingEncoding:(NSStringEncoding)encoding { return (NSString *)CFURLCreateStringByAddingPercentEscapes(NULL, (CFStringRef)self, NULL, (CFStringRef)@"!*'\"();:@&=+$,/?%#[]% ", CFStringConvertNSStringEncodingToEncoding(encoding)); } @end
อีกวิธีหนึ่งในการเข้ารหัส URL ใน Objective C คือ -
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