使用以下方法将NSData转换为NSString:
NSString *strData = [[NSString alloc]initWithData:returnData encoding:NSUTF8StringEncoding]
以类似下面的方式在 NSLog 中打印 NSString:
NSLog(@"%@",strData);
这个答案是为了JeremyP而编辑的,因为他不知道如何确定内容是否为UTF-8,尽管这不是这个问题的讨论。
您可以在以下委托方法中获取响应标头
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)response;
NSDictionary *dic = [httpResponse allHeaderFields];
}
这个字典会给你完整的标题信息,像下面这样
<CFBasicHash 0x5a45e40 [0x24b2380]>{type = immutable dict, count = 7,
entries =>
0 : <CFString 0x5d1bf60 [0x24b2380]>{contents = "X-Aspnet-Version"} = <CFString 0x5d21a60 [0x24b2380]>{contents = "2.0.50727"}
1 : <CFString 0x41a03a8 [0x24b2380]>{contents = "Server"} = <CFString 0x5d272f0 [0x24b2380]>{contents = "Microsoft-IIS/6.0"}
2 : <CFString 0x41a0010 [0x24b2380]>{contents = "Content-Length"} = <CFString 0x5d28630 [0x24b2380]>{contents = "385"}
6 : <CFString 0x419ff48 [0x24b2380]>{contents = "Cache-Control"} = <CFString 0x5d29c70 [0x24b2380]>{contents = "private, max-age=0"}
10 : <CFString 0x5d1c640 [0x24b2380]>{contents = "X-Powered-By"} = <CFString 0x5d26f10 [0x24b2380]>{contents = "ASP.NET"}
11 : <CFString 0x41a0060 [0x24b2380]>{contents = "Content-Type"} = <CFString 0x5d29c90 [0x24b2380]>{contents = "text/xml; charset=utf-8"}
12 : <CFString 0x41a0088 [0x24b2380]>{contents = "Date"} = <CFString 0x5d27610 [0x24b2380]>{contents = "Fri, 08 Jul 2011 15:23:10 GMT"}
}
检查charset="utf-8",您将从这里获取编码。