Конвертировать NSString в unsigned char * для приложения iphone - PullRequest
6 голосов
/ 26 ноября 2009

Я пытаюсь преобразовать NSString в unsigned char * для приложения iphone. и я недавно для этой цели приложения C и Iphone, поэтому, пожалуйста, помогите в этом. Есть ли какой-нибудь API, который может помочь преобразовать NSString в unsigned char *.

Спасибо, KamalBhr

Ответы [ 3 ]

19 голосов
/ 26 ноября 2009

Ну, вопрос немного неправильный, потому что печатать - не единственное, о чем вам нужно беспокоиться. Вам нужно не только беспокоиться о доступе, но и о кодировке. Предполагая, что вы просто хотите кодировку UTF8, вы можете обойтись без:

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

Если, однако, вам нужен доступ к однобайтовым данным на символ, чем вы, вероятно, захотите использовать одну из других кодировок, например, ASCII:

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

Другая полезная кодировка, которую вы можете использовать, - это Latin1, которая дает вам стандартный ASCII, а также акцентированные символы и символы, используемые большинством языков в Западной Европе и США: NSISOLatin1StringEncoding

4 голосов
/ 26 ноября 2009

NSString ссылка ваша помощь. NSString имеет следующие функции для преобразования его в c-строку:

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

И есть также аналогичный вопрос .

0 голосов
/ 26 ноября 2009

Вы можете попробовать использовать

- (const char *)cStringUsingEncoding:(NSStringEncoding)encoding
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...