URL Encoding (URL 인코딩)
URL로 쓸 수 있는 문자열은 알파벳, 숫자, 몇개의 특수문자가 전부이다.
한글을 URL로 쓸 수 없다.
한글을 쳐도 되는데? 하는 것은 웹 브라우저에서 자동으로 인코딩 해주기 때문이다.
문자열을 URL에서 사용할 수 있도록 인코딩 하려면?
메소드를 사용함. (UTF-8을 기본으로 사용하므로 따로 명시 하지 않아도 됨.)
기존에 문자열 인코딩에 사용되던 stringByAddingPercentEscapesUsingEncoding 메소드는 OS 10.11부터 사용안함. (NSUTF8StringEncoding이라는 인자를 따로 줬어야 했음 - 불편...)
URL을 문자열로 디코딩 하려면?
메소드를 이용하면 됨.
ex)
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSString *urlStr = @"https://nightohl.tistory.com/category/My%20Exploit/팟플레이어%20취약점";
NSString *encodedUrlStr = [urlStr stringByAddingPercentEncodingWithAllowedCharacters:urlStr];
NSLog(@"encoded UrlString : %@", encodedUrlStr);
NSString *decodedUrlStr = [urlStr stringByRemovingPercentEncoding];
NSLog(@"decoded UrlString : %@", decodedUrlStr);
}
return 0;
}
==> 결과 :
2019-02-14 20:34:51.220965+0900 Study[2583:421995] encoded UrlString : %68%74%74%70%73%3A%2F%2F%6E%69%67%68%74%6F%68%6C%2E%74%69%73%74%6F%72%79%2E%63%6F%6D%2F%63%61%74%65%67%6F%72%79%2F%4D%79%25%32%30%45%78%70%6C%6F%69%74%2F%ED%8C%9F%ED%94%8C%EB%A0%88%EC%9D%B4%EC%96%B4%25%32%30%EC%B7%A8%EC%95%BD%EC%A0%90
2019-02-14 20:34:51.221239+0900 Study[2583:421995] decoded UrlString : https://nightohl.tistory.com/category/My Exploit/팟플레이어 취약점
Program ended with exit code: 0
'Objective-C 기초' 카테고리의 다른 글
가변 문자열 (0) | 2019.02.14 |
---|---|
파일로 쓰기, 파일 읽기 (0) | 2019.02.14 |
== (0) | 2019.02.09 |
상속 (0) | 2019.02.09 |
인스턴스 메소드 & 클래스 메소드 (0) | 2019.02.09 |