2014-02-14 2 views
3

영어 문자와 일본어 문자가 모두 포함 된 문자열이 있습니다. 우리 서버에 데이터를 전송하기 전에 일본어 문자를 유니 코드로 변환해야합니다. UTF-8로 변환하는 항목이 많았지 만 유니 코드로 변환하는 데는 아무 것도 발견하지 못했습니다.iOS에서 유니 코드로 문자열 인코딩

사이드 노트 : 문자열을 배열에 넣고 NSLog를 사용하여 배열을 인쇄하면 일본어 텍스트가 유니 코드로 인쇄됩니다.

NSString *data = @"aさ"; 
NSArray *array = [NSArray arrayWithObjects: data, other data..., nil]; 
NSLog(@"%@", array); 

이렇게하면 배열 내의 문자열 데이터에 대해 "a \ U3055"가 인쇄됩니다.

+0

이 볼 수 .. http://stackoverflow.com/questions/10305488/nsstring-to-const-char-convert-with-greek-characters – Dinesh

+0

NSLog 및 설명을해야 디버깅 출력에만 사용됩니다. – larva

답변

15
NSData *dataenc = [data dataUsingEncoding:NSNonLossyASCIIStringEncoding]; 
NSString *encodevalue = [[NSString alloc]initWithData:dataenc encoding:NSUTF8StringEncoding]; 
0
-(NSString *)StringWithData:(NSString *)Encoded { 

NSString *decoded = (__bridge_transfer NSString *)CFURLCreateStringByReplacingPercentEscapesUsingEncoding(NULL, (CFStringRef)Encoded, CFSTR(""), kCFStringEncodingUTF8); 
return [decoded stringByReplacingOccurrencesOfString:@"+" withString:@" "]; 
} 

- (NSString *)EncodceStringWithData:(NSString *)Encoded { 

NSString *urlEncoded = (NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(NULL, (CFStringRef)Encoded, NULL, (CFStringRef)@"!*'\"();:@&=+$,/?%#[]% ", kCFStringEncodingUTF8)); 
return [urlEncoded stringByReplacingOccurrencesOfString:@"%20" withString:@"+"]; 
} 
관련 문제