iOS NSString与UInt8的转换问题

我在iOS里面通过这个NSString转buff_name

NSString *room_name=@"我是谁我是谁";
UInt8 buff_name[1024];
memcpy(buff_name, [room_name UTF8String],[room_name length]+1);
NSLog(@"%s",buff_name);

得到:ÊàëÊòØË
然后我在另一个里面要将这个buff_name转回成NSString,怎么破?

阅读 9.8k
1 个回答
NSString *room_name = @"我是谁我是谁";
UInt8 buff_name[1024];
memcpy(buff_name, [room_name UTF8String],[room_name lengthOfBytesUsingEncoding:NSUTF8StringEncoding] + 1);
//|UTF8String|返回是包含\0的  |lengthOfBytesUsingEncoding|计算不包括\0 所以这里加上一
printf("%s", (char *)buff_name);
NSString *result = [NSString stringWithCString:(char *)buff_name encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题