iOS에서 제공해주는
[str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
메소드의 경우 문제가 많고 버그도 있다라는 것으로 알려져있다. 한 가지 예시로 이메일 abcd@asbd.com을 Encoding해보면
결과가 그대로 출력되는 것을 알 수 있다.
위의 방법을 대체 할 수 있는 방법은
@interface NSString (URLEncoding)
-(NSString *)urlEncodeUsingEncoding:(NSStringEncoding)encoding;
@end
@implementation NSString (URLEncoding)
-(NSString *)urlEncodeUsingEncoding:(NSStringEncoding)encoding {
return (NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(NULL,
(CFStringRef)self,
NULL,
(CFStringRef)@"!*'\"();:@&=+$,/?%#[]% ",
CFStringConvertNSStringEncodingToEncoding(encoding)));
}
@end
위의 코드를 하나의 클래스 파일로 만들거나 사용할 곳에 삽입한다. 그리고 아래와 같이 사용
[str urlEncodeUsingEncoding:NSUTF8StringEncoding];
'Development > IOS & Mac' 카테고리의 다른 글
[IOS Library] 이미지에서 색상값 추출 (0) | 2014.05.12 |
---|---|
[iOS] capturing self strongly in this block is likely to lead to a retain cycle (0) | 2014.04.07 |
[iOS] Animation에서 터치가 되지 않을때.. (0) | 2014.03.18 |
[iOS] iOS 7 status bar에서 hidden이 되지 않을때~!! (0) | 2014.03.05 |
[iOS] NSLocalizedString 사용해보기~! (0) | 2014.02.27 |