본문 바로가기

Objective-C 기초

URL Encoding

반응형

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