在我的一个应用程序中,我打开了二进制文件,用户在某些文件上收到了一些错误报告。当他们向我发送文件时,如果我在桌面上的Gmail上下载文件,则该文件会在我的应用中很好地显示。当我使用原生Android GMail应用程序下载它们时,该文件无法打开。
以下是原始文件的前64个字节,从桌面下载时显示(显示为hexa):
03 00 08 00 D8 0C 00 00 01 00 1C 00 BC 02 00 00
2D 00 00 00 00 00 00 00 00 01 00 00 D0 00 00 00
00 00 00 00 00 00 00 00 10 00 00 00 25 00 00 00
33 00 00 00 3D 00 00 00 44 00 00 00 49 00 00 00
以下是使用原生GMail应用程序下载的文件的前64个字节(再次为hexa):
EF BF BD EF BF BD 2D EF BF BD 25 33 3D 44 49 4D
52 63 72 76 EF BF BD EF BF BD EF BF BD EF BF BD
EF BF BD EF BF BD EF BF BD EF BF BD EF BF BD EF
BF BD EF BF BD 29 2E 3E 43 54 59 69 6E 7F EF BF
是否有一种压缩应用于此文件或GMail应用程序是否会破坏它?特别是如果你看第一个样本的结尾,你有以下字节10,25,33,3D,44,49,它们也出现在第二个样本的第一行,这让我觉得它是压缩某种。
答案 0 :(得分:1)
我不确定确切的来源,但是如果你看一下http://www.cogsci.ed.ac.uk/~richard/utf-8.cgi?input=%F6&mode=char,那么这种模式是由于某些东西试图将文件解释为UTF-8,进行替换,然后将文件写为UTF- 8。