0

私はこのような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」に続く数字が含まれないのはなぜですか?

4

2 に答える 2

4

0x4eの後のゼロは、ASCII / UTF-8の数字「0」ではなく、文字列マーカーの終わりであるためです。0x00ではなく0x30にする必要があります。

于 2013-03-02T03:25:40.010 に答える
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); 
于 2013-03-02T03:35:14.733 に答える