0

私のアプリケーションの1つで、バイナリファイルを開き、いくつかのファイルについてユーザーからエラーレポートを受け取りました。彼らが私にファイルを送ってくれたとき、私がそれらをデスクトップのGmailにダウンロードすると、ファイルは私のアプリにうまく表示されます。ネイティブのAndroidGMailアプリでダウンロードすると、ファイルが開きません。

元のファイルの最初の64バイトは、デスクトップからダウンロードしたときに表示されます(ヘキサとして表示されます)。

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があります。これらは、2番目のサンプルの最初の行にも表示されているため、圧縮だと思います。ある種の

4

1 に答える 1

1

正確なソースはわかりませんが、http://www.cogsci.ed.ac.uk/~richard/utf-8.cgi?input =%F6&mode = charを見ると、そのパターンは次の理由によるものです。ファイルをUTF-8として解釈しようとし、置換を実行してから、ファイルをUTF-8として書き込みます。

于 2013-11-07T17:54:46.847 に答える