1

FTP経由で中国名(BIG5エンコード)のファイルをダウンロードしていますが、Filezillaはそれらのファイル名をガベージとして表示します(FTPはASCIIとUTF-8以外のエンコード、少なくとも標準準拠のものを処理できないため)。

文字化けした文字を含むファイル名が与えられた場合、ソースエンコーディングをすでに知っているので、エンコーディングを修復して適切なファイル名文字列を取得することは可能ですか?FTPクライアントはBIG5をUTF-8として誤って解釈し、BIG5への変換を困難にするバイトを挿入しますか?

私が提案した手順(Javaの場合):1。Fileオブジェクトを使用して文字化けしたファイル名を取得します。2.UTF-8を使用したgetbytes。3.BIG5のそれらのバイトを使用して新しい文字列を作成します。4.デコードされたファイル名をファイルに書き戻します。

上記の方法は機能しますか?

4

1 に答える 1

2

すべてのバイトシーケンスが有効なASCIIまたはUTF-8文字列であるとは限らないため、一部のバイトが破棄されたり、置換文字に変換されたり、または不可逆的にマングルされたりする可能性があります。したがって、FileZillaによって正しく形成されたUTF-8またはASCIIになるように変更されている場合、元のファイル名を取得できないようです。

元の文字の一定の割合を取り戻すことができれば幸運かもしれません。たまたま有効なBIG5と有効なUTF-8の両方でしたが、ファイル名全体を復元できるとは思えません。

文字化けしたファイル名の例をいくつか投稿して(16進数でエンコードされた生のバイトとして)、より明確な答えを得ることができます。そうすれば、被害が何であるかを正確に知ることができます。

于 2010-03-23T09:42:54.207 に答える