2014-03-06 1 views
0

에있는 NSData로 변환하는 방법 후을 NSData에서있는 NSString난을 NSData에있는 NSString을 변환하는 경우는 NSString 일본

NSString *input = @"ステータス"; 
    NSData *output = [NSData dataWithBytes:[input UTF8String] length:[input length]]; 
    NSString *output2 = [[NSString alloc] initWithData:output encoding:NSUTF8StringEncoding]; 

출력 2는 무기 호입니다 변환합니다.
입력이 알파벳 문자이면 확인하십시오.

도와주세요.

답변

4

올바른 변환 코드의 문제가 [input length] 유니 코드 문자의 수, UTF-8 바이트가 아닌 수를 제공한다는 것입니다

NSData* output = [input dataUsingEncoding:NSUTF8StringEncoding]; 

입니다.

+0

당신의 대답이 최선의 해결책 인 동안 나는'[input length]'를'strlen ([input UTF8String])'으로 대체 할 것입니다. – rmaddy

+0

@rmaddy : NSString *은 NUL 문자를 포함 할 수 있으며 strlen()은 문자열을 줄입니다. 하지만 그 사건은 아마도 학문적 관심이 더 많을 것입니다. –

+0

맞습니다! 많이 verry 고마워. – Dien