-2

あるサーバーからデータを読み取り、ファイルに保存するスクリプトがあります。しかし、ファイルはどういうわけか壊れているようです。ディスプレイに出力できますが、ファイルをチェックするとfile生成されます

bash$ file -I filename  
filename: text/plain; charset=unknown-8bit

エンコーディングが不明であると表示されるのはなぜですか? ファイルの最初の行は次のように表示されます

“The Galaxy A5 and A3 offer a beautifully crafted full metal unibody

16 進ダンプでは、最初の 3 バイトが 0xE2、0x80、0x9C であり、その後に通常の ASCII テキストが続くことがわかりますThe Galaxy A5...

どうしたの?エンコーディングが不明であると表示されるのはなぜfileですか? 実際には何ですか?

4

2 に答える 2

1

質問の情報に基づくと、ファイルは完全に良好な UTF-8 ファイルです。最初の 3 バイトはLEFT DOUBLE QUOTATION MARK (U+201C)別名中引用符をエンコードします。

のバージョンfileが非常に古い可能性があります。

于 2015-09-08T07:16:33.937 に答える
0

iconv を使用して、ファイルを目的の文字セットに変換できます。例えば

iconv --from-code=UTF8 --to-code=YOURTARGET

サポートされているターゲットのリストを取得するには、 --list フラグを使用します。

于 2015-09-07T12:13:13.237 に答える