当我在下面记录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];