2011-01-13 2 views
3

어떻게 UTF-8을 사용하여 동일한 문자열을 인코딩 한 다음 디코딩 할 수 있는지 보여주는 예제를 찾고 있습니다. Encode and Decode은 메소드를 인코딩 할 수 있고 다른 메소드를 디코딩 할 수있는 2 가지 영역에서 메소드를 구현하고자 함을 의미합니다.iPhone에서 UTF-8을 사용하여 인코딩 및 디코딩

나는 API를 보았다 그러나 나는 많은 성공하지 않았다 :

  • stringWithCString:encoding:
  • stringWithUTF8String:
  • stringWithCString:(const char *)cString encoding:(NSStringEncoding)enc;

편집을
나는 다음과 같이 내가 인코딩하고 문자열 øæ-test-2.txt 있습니다

char *s = "øæ-test-2.txt"; 
NSString *enc = [NSString stringWithCString:s encoding:NSASCIIStringEncoding]; 

을하지만 출력으로 øæ-test-2.txt을 얻고있다. 지금 내가 다시 즉 원래 문자열을 다시 얻으려면
내가 서버에서 øæ-test-2.txt를 받고 그리고 난 그것을 디코딩하여 øæ-test-2.txt을 필요로 편집을 할 øæ-test-2.txt


. 링크에서 출력을 얻을 수 있습니다. http://www.cafewebmaster.com/online_tools/utf_decode

제발 내 관심사를 이해하고 사용 해보십시오.

누군가가 힌트, 튜토리얼 또는 올바른 방향으로 나를 가리킬 수 있다면 매우 높이 평가 될 것입니다.

안부

답변

7

는 UTF8에 C-문자열로 NSString 객체를 반전 UTF8String

char *utf8string = [@"A string with ümläuts" UTF8String]; 

NSString 객체로 UTF8의 C 문자열 좌회전 사용 사용 stringWithUTF8String: 또는 initWithUTF8String:

NSString *string = [NSString stringWithUTF8String:utf8string]; 

NSString 개체는 UTF-16으로 구현되어 있으므로 "UTF-8 NSString"을 가지고 있지 않습니다 (인코딩은 구현 세부 사항으로 간주되어야합니다). 대신

char *utf8string = [@"A string with ümläuts" UTF8String]; 

+0

긴급 답변을 보내 주셔서 감사합니다. 내 편집 된 질문을 참조하십시오. – Ekra

+0

음, NSASCIIStringEncoding을 사용하여 UTF-8 문자열을 읽을 수 없습니다 (UTF-8은 ASCII가 아닙니다). NSUTF8StringEncoding 또는 (동등하지만 더 짧은) stringWithUTF8String을 사용하십시오 : – vicvicvic

+0

답장을 보내 주셔서 감사합니다. ASCII 인코딩을해서는 안된다는 것에 동의합니다. 하지만 나는 응답을 "øÃ|-test-2"라고합니다.txt "서버에서. 그냥 어떻게 그것을"øæ- 테스트 - 2.txt "로 변환해야합니다. UTF- 디코딩 ("ìÃ- 테스트 - 2.txt ") 아래 링크를 시도하면 "øæ-test-2.txt"받기 http://www.cafewebmaster.com/online_tools/utf_decode 회신을 기다리는 중 – Ekra

2

const char *utf8string = [@"A string with ümläuts" UTF8String]; 

그렇지 않으면 호환되지 않는 유형의 문제가되어야한다.

관련 문제