2012-12-10 5 views
0

에서 작동 할 수 없습니다 :UTF8 그것이 내가 UTF8 인코딩 이상한 동작을 실제 장치

예를 들어

: 내가 시뮬레이터에서 실행할 경우

NSString *uni = @"\U0001d11e"; 
NSString *uni2 = [[NSString alloc] initWithUTF8String:"\xF0\x9D\x84\x9E"]; 
NSString *uni3 = @""; 
NSLog(@"unicode: %@ and %@ and %@",uni, uni2, uni3); 

내가했습니다 예상 된 결과 가지고 :

unicode: ùÑû and ùÑû and ùÑû 
:

unicode: and and 

을하지만 난 실제 장치로, 여기에 출력을 실행했을 때

이유를 이해할 수 없습니다. 컴파일 해결 방법이나 내가 이해하지 못했던 것입니까? @ ""구문은 ASCII 문자 만 사용할 수 있다는 것을 알고 있습니다. 하지만 이것이 시뮬레이터에서 작동하는 이유는 무엇입니까? 실제 장치에서 작동하도록 만드는 방법에 대한 아이디어가 있습니까? Thx

+0

귀하의 문제에 대한 답을 모르겠지만 최근 버전의 Xcode에서는 소스 코드와 리터럴 문자열에 UTF-8 문자를 추가 할 수 있습니다 ... 또한 Mac에서 , 유니 코드 문자 0001D111E는 * Apple Symbols * 글꼴에만 존재하며이 글꼴은 iOS에는 없습니다. 아마도 그게 문제 일 것입니다 ... – Guillaume

+0

어디에서 로그를 보십니까? 새로운 iOS 프로젝트를 생성하고 iPhone에서 실행하면 출력이 Xcode 콘솔과 Organizer 장치 콘솔에서 잘 보입니다. –

답변

1

모든 것이 정상적으로 작동하고 바이트가 올바르게 수신됩니다. 장치가 UTF-8 대신 Mac OS Roman으로 디코딩하는 것입니다. 장치에 입력이 UTF-8임을 지정하기 만하면됩니다. 그렇게하는 법을 모르는 경우에는 더 자세한 정보를 제공해야합니다.

+0

Thx Esailija! 그게 날 도와 줬어. –