0

いくつかのバイナリ (zip) ファイルを保存する中央リポジトリがあります。クライアントは、このリポジトリから特定のファイルをダウンロードし、それらをローカルで解凍して、結果のファイルを指定されたフォルダーに配置できます。

ある時点で、これにより、保存された zip 内のファイルの 1 つのエンコーディングが変更されます。なぜこれが起こるのか説明はありませんが、そうです。私自身のファイルは UTF-8 であり、コード ポイントが 16 進エディターで C3B3 として表される文字が含まれています。クライアントは、これらのファイルの少なくとも 1 つのエンコーディングを Windows-1252 に変更し、文字が F3 として表されるようにします。これは、同じ操作で彼らのマシンでは発生しますが、私のマシンでは発生しません。

何か案は?

4

1 に答える 1

2

0xc3 0xb3 は ó の utf-8 エンコーディングであり、実際にはコード ページ 1252 の 0xf3 です。Zip アーカイブにはコード ページが認識され、文字列が格納されます。ただし、それはアーカイブの辞書、ファイルの名前にのみ適用されます。そして可能なパスワード。圧縮されたファイル自体ではなく、バイトのバイナリ BLOB のように扱われます。

ここで最も可能性の高いシナリオは、顧客がファイルを読み取るために使用するプログラムが、この変換を行っているということです。たとえば、メモ帳である可能性があります。非常に遠いショットは、顧客が使用する解凍ツールが、圧縮されたファイルがテキスト ファイルであることを何らかの形で認識しているということです。.zip アーカイブで正確に何をしているのかを顧客に尋ねることで、先に進む必要があります。

于 2013-10-24T15:20:17.387 に答える