NSData 到 NSString 随机字符


NSData to NSString random characters

当我在下面记录responseString的 vaule 时,它总是有随机字符 - 这是 PHP 问题还是 iOS 问题?

NSURLResponse *response;
NSError *error;
NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
NSString *responseString = [NSString stringWithUTF8String:[responseData bytes]];
NSLog(@"%@", responseString);
NSString *success = @"200200";
[success dataUsingEncoding:NSUTF8StringEncoding];
NSLog(@"%lu", (unsigned long)responseString.length);
NSLog(@"%lu", (unsigned long)success.length);
//responseString.length should = success.length but doesn't :(

>[responseData bytes]只返回一个指向responseData字节的指针,而不终止 NUL。因此,您会在 responseString 中获得随机字符。

要正确转换,请使用

NSString *responseString = [NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];

字符串是不可变的,所以这一行不做任何事情:

[success dataUsingEncoding:NSUTF8StringEncoding];

你的意思是把它分配给某事吗?

NSData *successData = [success dataUsingEncoding:NSUTF8StringEncoding];