2009-11-26 2 views
6

아이폰 애플리케이션 용 NSString을 unsigned char *로 변환하려고합니다. 그리고 나는이 목적 C와 iphone 신청을 위해 새로 왔습니다. 그래서 이것에 도움주세요. 거기에 어떤 API가 NSString을 unsigned char *로 변환하는 데 도움이 될 수 있는지 여부입니다. 당신은 시도 할 수NSString을 iphone 애플리케이션 용 unsigned char *로 변환하십시오.

감사합니다, KamalBhr

답변

0

- (const char *)cStringUsingEncoding:(NSStringEncoding)encoding 
+0

NSISOLatin1StringEncoding이 주셔서 감사합니다 빠른 응답 .. 나는이 코드를 시도하고 있습니다 .... FileString = [[NSString alloc] initWithContentsOfFile : defaultPath]; 서명되지 않은 char * finalstring = [FileString UTF8Char]; 하지만 그 컴파일되지 않습니다 .. – KamalBhr

4

NSString reference 당신의 도움이됩니다 사용할 수 있습니다.

- (const char *)UTF8String; 
- (const char *)cStringUsingEncoding:(NSStringEncoding)encoding 
- (BOOL)getCString:(char *)buffer maxLength:(NSUInteger)maxBufferCount encoding:(NSStringEncoding)encoding 

을 그리고 또한 similar question있다 :있는 NSString은 C 문자열로 변환하기 위해 이러한 기능을 가지고있다.

+0

당신의 빠른 응답을 주셔서 대단히 감사합니다. 나는 해결책을 가지고 ..kamalBhr – KamalBhr

19

글쎄, 질문은 당신이 걱정해야 할 유일한 것이 아니기 때문에 잘못된 이름입니다. 액세스에 대해 걱정할 필요가있을뿐만 아니라 인코딩에 대해 걱정할 필요가 있습니다.

NSString *myString = @"Hello"; 
const unsigned char *string = (const unsigned char *) [myString UTF8String]; 

당신은 아마 ASCII와 같은 다른 인코딩 중 하나를 원하는 것보다, 그러나, 당신은 문자 데이터 당 1 바이트에 액세스해야하는 경우 : 당신이 멀리 얻을 수있는 것보다 당신이 단지는 UTF8 인코딩을 원하는 가정 :

NSString *myString = @"Hello"; 
const unsigned char *string = (const unsigned char *) [myString cStringUsingEncoding:NSASCIIStringEncoding]; 

사용할 수있는 다른 가치있는 인코딩이 서유럽과 미국에서 대부분의 언어에서 사용하는 악센트 문자 및 기호와 함께 사용하면 표준 ASCII를 얻을 라틴어입니다 :

+0

+1'NSISolatin1StringEncoding'. 내 문자열에 부호없는 값이 128보다 큰 글리프가 포함되어있어 NSASCIIStringEncoding이 실패했습니다. – PassKit

관련 문제