下面的 url 下载一个没有扩展名的文件,包括公交车站和时间。数据在 iPhone 应用程序中获取,该应用程序显示名为 mobitime 的公交时间。问题是我无法找出数据的编码方式。有什么办法可以查到吗?
谢谢!
下面的 url 下载一个没有扩展名的文件,包括公交车站和时间。数据在 iPhone 应用程序中获取,该应用程序显示名为 mobitime 的公交时间。问题是我无法找出数据的编码方式。有什么办法可以查到吗?
谢谢!
我知道有两种技术:
您可以查看 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);
});
但这会报告一个错误(再次表明这可能根本不是字符串编码)。
简而言之,我建议您联系该网络服务的提供商,并询问他们有关格式的问题。但是看着十六进制转储,我不认识这种格式。一眼看去,它看起来像二进制数据,而不是任何字符串编码。