我正在使用我的应用程序NSURLConnection获取网站的网页。
这是我怎么称呼NSURLConnection
NSURL *url = [NSURL URLWithString:@"http://jokes.moment.co.il/default.asp?s1=4&s2=0"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[NSURLConnection connectionWithRequest:request delegate:self];
这就是我追加我得到的数据的方式:
-(void) connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
if (receivedData)
{
[receivedData appendData:data];
}
else
{
receivedData = [[NSMutableData alloc] initWithData:data];
}
}
这就是我尝试将其转换为NSString的方式:
-(void) connectionDidFinishLoading:(NSURLConnection *)connection
{
NSString *string = [[NSString alloc] initWithData:receivedData encoding:NSUTF8StringEncoding];
}
receivedData是47586字节,当我进行转换时,字符串是nil
答案 0 :(得分:6)
快速查看您网址的内容,可以看出内容类型是ISO-8859-1
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
尝试将对initWithData的调用更改为...
[[NSString alloc] initWithData:nsdata encoding:NSISOLatin1StringEncoding];
答案 1 :(得分:1)
很可能,收到的字符串无法有效编码为NSUTF8StringEncoding。
您可能需要将字符串写入文件系统,然后使用NSString方法之一通过NSError**
参数描述任何转换错误,以了解确切的错误。