[iOS] NSDictionary 내부의 NSString 모두 UTF8로 Encode하거나 Decode 하기
이미 기능을 JSON에서 지원하고 있는데 제가 못찾았을 가능성도 있으며,
테스트를 몇번 못해봐서 버그가 있을 수도... 버그를 발견하신 분은 꼭 댓글을 부탁드립니다~~~!!!
NSDictionary 클래스를 확장하여 사용하였습니다.
코드는 UTF8로 되어 있지만 인코딩 코드만 바꾸셔서 사용하시면 다른 인코딩도 되겠죠~?
<헤더부분>
#import <Foundation/Foundation.h>
@interface NSDictionary(UTF8)
- (NSDictionary*)dictionaryByUTF8Encode;
- (NSDictionary*)dictionaryByUTF8Decode;
@end
<구현부분>
#import "NSDictionaryUTF8.h"
@implementation NSDictionary(UTF8)
- (NSDictionary*)dictionaryByUTF8Encode
{
NSMutableDictionary* encodeDict = [NSMutableDictionary dictionary];
NSArray* keys = [self allKeys];
for (NSString* key in keys) {
NSObject* obj = [self objectForKey:key];
if ([obj isKindOfClass:[NSMutableString class]]) {
NSString* stringObj = (NSString*)obj;
[encodeDict setValue:[stringObj stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding] forKey:key];
} else if ([obj isKindOfClass:[NSDictionary class]]) {
[encodeDict setValue:[(NSDictionary*)obj dictionaryByUTF8Encode] forKey:key];
} else {
[encodeDict setValue:obj forKey:key];
}
}
return encodeDict;
}
- (NSDictionary*)dictionaryByUTF8Decode
{
NSMutableDictionary* decodeDict = [NSMutableDictionary dictionary];
NSArray* keys = [self allKeys];
for (NSString* key in keys) {
NSObject* obj = [self objectForKey:key];
if ([obj isKindOfClass:[NSMutableString class]]) {
NSString* stringObj = (NSString*)obj;
[decodeDict setValue:[stringObj stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding] forKey:key];
} else if ([obj isKindOfClass:[NSDictionary class]]) {
[decodeDict setValue:[(NSDictionary*)obj dictionaryByUTF8Decode] forKey:key];
} else {
[decodeDict setValue:obj forKey:key];
}
}
return decodeDict;
}
@end
'iOS' 카테고리의 다른 글
[iOS] 문장이 화면에 표현되는 높이와 길이 얻기 (0) | 2011.09.05 |
---|---|
[iOS] UITextView를 Rounded Rect 형태로 표현하기 (0) | 2011.09.02 |
[iOS] 아이폰의 현재 상태가 세로(Portrait)인지 가로(Landscape)인지 확인하는 방법 (0) | 2011.09.02 |
[iOS] xcode 삭제 (0) | 2011.07.21 |
[iOS] tmp 디렉토리 (0) | 2011.07.14 |
[iOS] 문자열 조작 (0) | 2011.07.05 |
[iOS] 문자열 중에서 숫자만 얻어내기 (1) | 2011.07.05 |
[iOS] 초성검색을 위한 한글 초성, 중성, 종성 분리하기 (0) | 2011.07.05 |
[iOS] 문자열 해쉬값 구하기 (NSString MD5) (0) | 2011.07.05 |
[iOS] 이미지 뒤집기(Flip) (0) | 2011.07.01 |