/ /このNSDataをNSStringに変換する方法は? - objective-c

このNSDataをNSStringに変換するには? - objective-c

私はこのようなNSDataを持っている:

455a4f4e 00000001 01020304 00000000 00000000

私のコード:

Byte bytes[] = {0x45, 0x5a, 0x4f, 0x4e, 0, 0, 0, 1, 1, 2, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0};
NSData *data = [NSData dataWithBytes:bytes length:sizeof(bytes)];
NSString *str = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
NSLog(@"%@", str); // prints "EZON"

私は結果が欲しい EZON0001 等...

印刷結果に「EZON」の後に数字が含まれていないのはなぜですか?

回答:

回答№1は4

0x4eの後のゼロはASCII / utf-8桁の「0」ではなく、文字列マーカーの末尾であるためです。それは0x00ではなく0x30でなければなりません...


回答№2の場合は0

これを試して

    Byte bytes[] = {0x45, 0x5a, 0x4f, 0x4e, 0, 0, 0, 1, 1, 2, 3, 4, 0, 0, 0, 0, 0, 0, 0, 0};
NSData *data = [NSData dataWithBytes:bytes length:sizeof(bytes)];
NSString* newStr = [NSString stringWithUTF8String:[data bytes]];
NSLog(@"%@", newStr);