0

インターネットからのデータに問題があります。content-type:application/octet-stream を持つインターネットからのパッケージがあります。

私の質問は、それを読み取り可能な値 (1,4.321、-2.6013 など) にデコードするにはどうすればよいですか? または、これを行うことができるアプリケーションはありますか?

例えば:

3ecccccd は 0.400 です ( http://gregstoll.dyndns.org/~gregstoll/floattohex/ ) 一部は実数です。07d0 は 2.000 です

ここに画像の説明を入力

4

2 に答える 2

8

HTTP のContent-Encodingヘッダーは、データ自体が HTTP の外部でエンコードされる方法ではなく、HTTP メッセージ自体の内部でデータがエンコードされる方法にのみ適用されます。あなたの例にはContent-Encodingヘッダーが存在しないため、HTTP はデータをエンコードしておらず、生データをそのまま提供しています。

HTTP のContent-Typeヘッダーがの場合application/octet-stream、つまり、データ (存在するContent-Encoding場合は に基づいてデコードした後) が生の 8 ビット データであることを意味し、送信者はデータの実際の型が何であるかを知りません。データが実際に何を表しているかをより意味のあるものContent-Typeに伝えることができない場合、データが本来あるべきものを他の手段で知っていない限り、生データを分析して、それが何であるかについて知識に基づいた推測を行うしかありません。

通常、バイナリデータ形式には、データが何であるかを識別するためにデータの先頭にヘッダー/署名があるため、そこから始めることができます。

データ型を特定できるまで、どのバイトがどの種類の値を表しているか、マルチバイト値にどのエンディアンが使用されているかなどを知ることはできません。それを処理します。

于 2013-10-16T21:23:55.243 に答える