一。 转换
/// 字符串转NSData
NSString *string=@"123";
NSData *data=[string dataUsingEncoding:NSUTF8StringEncoding];
// NSData 转 字节数组
Byte *betys=(Byte *)[data bytes];
for (int index=0; index < [data length]; index ++) { /// 注意: 在获取字节数组的长度(无法获取,可以转换为data的长度)
// NSLog(@"--------%hhu",betys[index] ); / 返回的是 ASCLL码
}
// 字节数组 转 NSdata
Byte byte[]={1,2};
NSData *newData=[[NSData alloc]initWithBytes:byte length:2];
// NSdata 转 字符串
NSString *String= [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
1. NSString转化为UNICODE String:
(NSString*)fname = @“Test”;
char fnameStr[10];
memcpy(fnameStr, [fname cStringUsingEncoding:NSUnicodeStringEncoding], 2*([fname length]));
与strcpy相比,memcpy并不是遇到'\0'就结束,而是一定会拷贝完n个字节
2. NSString 转化为 char * NSString * str= @“Test”; const char * a =[str UTF8String];
3.char * 转化为 NSString
NSString *str=[NSString stringWithCString encoding:NSUTF8StringEncoding];
二 。方法
/// 获取字符串的字节长度
-(int)charNumber:(NSString*)strtemp {
int strlength = 0;
char* p = (char*)[strtemp cStringUsingEncoding:NSUnicodeStringEncoding];
for (int i=0 ; i<[strtemp lengthOfBytesUsingEncoding:NSUnicodeStringEncoding] ;i++) {
if (*p) {
p++;
strlength++;
}
else {
p++;
}
}
return strlength;
}
三。 NSMutableData
// NsMutableData 的拼接 思路: 1.字符串转成nsdata获取长度,转换为字节数组, 最后获取想要的Data,然后 【muldata appendData:data】;
NSMutableData *muldata=[NSMutableData data];
NSString *str=@"1234";
NSData *newData=[str dataUsingEncoding:NSUTF8StringEncoding];
Byte *bytes=(Byte *)[newData bytes];
NSData *data=[NSData dataWithBytes:bytes length:4];
[muldata appendData:data];
NSString *str1=@"AA";
NSData *newData1=[str1 dataUsingEncoding:NSUTF8StringEncoding];
Byte *bytes1=(Byte *)[newData1 bytes];
NSData *data1=[NSData dataWithBytes:bytes1 length:2];
[muldata appendData:data1];
NSString *ste=[[NSString alloc]initWithData:muldata encoding:NSUTF8StringEncoding];
截取Nsdata
- [mutableData getBytes:&strlen1 range:NSMakeRange(4, sizeof(int))];
- NSData *strData = [mutableData subdataWithRange:NSMakeRange(8, strlen1)];;
- NSString *string1 = [[NSString alloc] initWithData:strData encoding:NSUTF8StringEncoding];