将NSString转换为iigned应用程序的unsigned char *

时间:2009-11-26 11:38:00

标签: iphone nsstring

我正在尝试将NSString转换为iigned应用程序的unsigned char *。我是这个目标C和iphone应用的新手,所以请帮忙。是否有任何api可以帮助将NSString转换为unsigned char *。

谢谢, KamalBhr

3 个答案:

答案 0 :(得分:19)

嗯,这个问题有点不合适,因为输入并不是你唯一需要担心的事情。您不仅需要担心访问,还需要担心编码问题。假设你只想要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

答案 1 :(得分:4)

NSString reference是你的帮助。 NSString具有将它们转换为c-string的函数:

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

还有similar question

答案 2 :(得分:0)

您可以尝试使用

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