下面的网址会下载一个没有包含总线和时间的扩展名的文件。数据在iPhone应用程序中获取,该应用程序显示称为mobitime的总线时间。问题是我无法找出数据的编码方式。有没有办法找出来?
谢谢!
答案 0 :(得分:1)
我知道有两种技术:
您可以查看HTTP标头,看看它是否报告任何有用的内容:
NSURLRequest *request = [NSURLRequest requestWithURL:url];
NSOperationQueue *queue = [[NSOperationQueue alloc] init];
[NSURLConnection sendAsynchronousRequest:request queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
if ([response isKindOfClass:[NSHTTPURLResponse class]]) {
NSHTTPURLResponse *httpResponse = (id)response;
NSLog(@"httpResponse.allHeaderFields = %@", httpResponse.allHeaderFields);
}
}];
这些标题报告"Content-Type" = "text/plain";
,显然情况并非如此。
有时您也可以使用usedEncoding
方法之一的initWithContentsOfURL
选项:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
NSStringEncoding encoding;
NSError *error;
NSString *string = [[NSString alloc] initWithContentsOfURL:url usedEncoding:&encoding error:&error];
if (error)
NSLog(@"%s: initWithContentsOfURL error: %@", __FUNCTION__, error);
if (string)
NSLog(@"encoding = %d", encoding);
});
但是报告错误(再次暗示这可能不是字符串编码)。
简而言之,我建议您联系该Web服务的提供商,并询问他们的格式。但是看看十六进制转储,我不认识格式。瞥了一眼,它看起来像二进制数据,而不是任何字符串编码。