2011-01-12 9 views
2

UT8 인코딩 된 문자열을 디코드하고 싶습니다.iphone에서 UTF8 문자열을 디코딩하는 방법

입력 문자열은 "øÃ| 테스트 - 2.txt"이다

하고 가되어야 복호화 후

" OAE - 테스트가 2.txt"

제가 발견 NSString 또는 NSData를 UT8 (NSUTF8StringEncoding)으로 인코딩하기위한 많은 API가 있지만이를 디코딩 할 방법을 찾지 못했습니다.

지금까지 시도하는 것 : -

NSString *str = [[NSString alloc] initWithUTF8String:[strToDecode cStringUsingEncoding:NSUTF8StringEncoding]]; 

[strToDecode stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding] 

[NSString stringWithUTF8String:[strToDecode cStringUsingEncoding:[NSString defaultCStringEncoding]]] 

나는 같은 입력 문자열을 시도하고 내가 third party decoder에서 적절한 출력을 얻을 .

그러나이 올바른 방향으로 어떤 힌트가 높게 평가 될 것이다

성공을 얻을 수 없습니다.

+0

코드를 표시하십시오. 지금까지 해 온 것을 보여주십시오. 우리가 제공하는 솔루션은 표준 API를 사용할 것이므로 어디서 잘못 될지 알아야합니다. –

+0

요청에 따라 편집했습니다 – Ekra

+0

해결책이 나와 함께 공유하는 것보다이 문제를 해결하면 동일한 문제가 있습니다. – Hiren

답변

6
[NSString stringWithUTF8String:] 
+0

내 질문을 편집했습니다. 제 입력을 확인하고 제가 언급 한 출력을 확인하십시오. – Ekra

+0

입력 문자열은 어떻게 받습니까? utf-8로 성공적으로 읽으려면 NSData 또는 char *에 저장해야합니다. 그렇지 않으면 엉망이됩니다. –

+0

응답을 XML로받습니다. xml 파서는 Dict의 값을 반환합니다. 거기에 문자열 형식으로 있습니다. 이 경우에는 무엇을 할 수 있습니까? – Ekra

5

나는 this을 사용합니다.

NSString *encoded_string = @"ü"; 
const char *ch = [encoded_string cStringUsingEncoding:NSISOLatin1StringEncoding]; 
NSString *decode_string = [[NSString alloc]initWithCString:ch encoding:NSUTF8StringEncoding]; 
NSLog(@"%@",decode_String) 
관련 문제