我正在尝试将NSString转换为iigned应用程序的unsigned char *。我是这个目标C和iphone应用的新手,所以请帮忙。是否有任何api可以帮助将NSString转换为unsigned char *。
谢谢, KamalBhr
答案 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
答案 2 :(得分:0)
您可以尝试使用
- (const char *)cStringUsingEncoding:(NSStringEncoding)encoding