下記のURLはバスステーションと時刻を含む拡張子なしのファイルをダウンロードします。データは、mobitime と呼ばれるバスタイムを表示する iPhone アプリで取得されます。問題は、データのエンコード方法がわからないことです。調べる方法はありますか?
ありがとう!
下記のURLはバスステーションと時刻を含む拡張子なしのファイルをダウンロードします。データは、mobitime と呼ばれるバスタイムを表示する iPhone アプリで取得されます。問題は、データのエンコード方法がわからないことです。調べる方法はありますか?
ありがとう!
私が知っている2つのテクニックがあります:
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 サービスのプロバイダーに連絡して、形式について尋ねることをお勧めします。しかし、16進ダンプを見ると、フォーマットがわかりません。一見すると、文字列エンコーディングではなく、バイナリ データのように見えます。