我对来自互联网的数据有一个问题。我有一个来自互联网的包,它的内容类型是:application/octet-stream。
我的问题是如何将其解码为可读的值(例如1,4.321,-2.6013等)?或者有没有可以做到这一点的应用程序?
例如:
3ecccccd是0.400 (http://gregstoll.dyndns.org/~gregstoll/floattohex/)有些是实数。07d0是2.000

发布于 2013-10-17 05:23:55
HTTP的Content-Encoding头只适用于数据在HTTP消息本身内部的编码方式,而不适用于数据本身在HTTP之外的编码方式。在您的示例中没有HTTP头,因此Content-Encoding没有以任何方式对数据进行编码,而是按原样为您提供原始数据。
当HTTP的Content-Type报头为application/octet-stream时,这意味着数据(基于Content-Encoding解码后,如果有的话)是原始的8位数据,发送者不知道数据的实际类型。如果没有更有意义的Content-Type来告诉您数据实际表示的是什么,那么您唯一能做的就是分析原始数据,并对它可能是什么做出有根据的猜测,除非您通过其他方式知道数据应该是什么。
通常,二进制数据格式在数据的前面有一个头/签名来标识数据是什么,所以您可以从它开始。
在确定数据类型之前,您无法知道哪些字节表示哪种类型的值,多字节值使用什么字节顺序,等等。简而言之,您需要有关正在下载的数据的更多信息,以便了解如何处理它。
发布于 2013-10-17 01:30:43
该内容类型不指示任何编码。它的全部含义是数据表示一个(8位)字节流。它们是如何编码的是完全不同的事情。要发现编码,您可以查看其他标头(如Content- encoding ),或者编码可能是隐式的,在这种情况下,您需要查阅文档。然后在此基础上选择合适的解码策略。
https://stackoverflow.com/questions/19409703
复制相似问题