编码和解码

// decode
NSString *string = [[NSString alloc] initWithData:utf8Data
                                         encoding:NSUTF8StringEncoding];

// encode
NSData *utf8Data = [string dataUsingEncoding:NSUTF8StringEncoding];

一些支持的编码是:

  • NSASCIIStringEncoding
  • NSUTF8StringEncoding
  • NSUTF16StringEncoding(== NSUnicodeStringEncoding

请注意,utf8Data.bytes 不包含终止空字符,这对于 C 字符串是必需的。如果你需要 C 字符串,请使用 UTF8String

const char *cString = [string UTF8String];
printf("%s", cString);