-2

下面的 url 下载一个没有扩展名的文件,包括公交车站和时间。数据在 iPhone 应用程序中获取,该应用程序显示名为 mobitime 的公交时间。问题是我无法找出数据的编码方式。有什么办法可以查到吗?

谢谢!

http://d2.mobitime.se/cgi/mtc/sad?uuid=01b07052fa390ceb845405e3d0547f7e&r=4&id=191430&no=721&to=Odensbacken%20via%20Ekeby-Almby&lang=sv

4

1 回答 1

1

我知道有两种技术:

  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";显然不是这种情况。

  2. 有时您还可以使用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);
    });
    

    但这会报告一个错误(再次表明这可能根本不是字符串编码)。

简而言之,我建议您联系该网络服务的提供商,并询问他们有关格式的问题。但是看着十六进制转储,我不认识这种格式。一眼看去,它看起来像二进制数据,而不是任何字符串编码。

于 2013-08-20T05:06:44.247 回答