`file`中のISO-8859はどういう意味ですか?

私は以下のコマンドを、私がアクセスできるソフトウェアリポジトリで実行しました:

見つける。 -not -name " .svn " -type f -exec file "{}" \;

多くの出力回線を見た

./ File.java:ISO-8859 C ++プログラムのテキスト

どういう意味ですか? ISO-8859はエンコーディングのクラスであり、特定のエンコーディングではありません。私はすべてのファイルがUTF-8であると期待していますが、ほとんどが提示されたエンコーディングにあります。 ISO-8859もUTF-8の適切なサブセットですか?

ISO-8859-1をソースコードとして使用し、 iconv でUTF-8に変換することで、これらのファイルをすべて安全に変換できますか?

1
@KoeingGunther java -encoding UTF-8 java -encoding MacRoman やjava -encodingなどの正しいエンコーディングでJavaプログラムをコンパイルする必要があります。ISO- 8859-15 など、あなたが使っているものであればどれでも。 Javaには、エンコーディングを指定するファイル内部の方法がないという設計上の欠陥があります。はい、これは、 java -encoding UTF-16LE などの悪意のある行為を行う可能性があることを意味します。おそらく、私はそうではないが、それは特徴であると解釈するだろう。
追加された 著者 tchrist,
編集:Javaソースをコンパイルするときに、ドイツ語のウムラウトに適切なマッピングがないことを示す警告が表示されます。
追加された 著者 KoenigGunther,

3 答え

私はUnixの file プログラムがこれではむしろ悪いのではないかと心配しています。それは単にそれがバイトエンコーディングであることを意味します。 ISO-8859-1であるとは限りません。それは通常ISO-byte以外のencdidngであるかもしれません。

私はファイルよりもはるかに優れたシステムを持っていますが、英語のコーパスで訓練されているので、ドイツ語と同様に機能しない可能性があります。

簡単な答えは、 file の結果が信頼できないということです。あなたはそれをアップコンバートするための実際のエンコーディングを知る必要があります。

1
追加された

質問は異なりますが、答えはあなたが探しているものだと思います。

Linux & C-Programming: How can I write utf-8 encoded text to a file?

1
追加された
彼らがあなた自身のソースファイルであれば、それはチェコ語やアラビア語を含んでいるとは思わないでしょうか?
追加された 著者 tripleee,
うーん、答えは私の問題の一部に取り組んだが、もっとスリル満点の質問は、ISO-8859のエンコーディングをISO-8859-1またはISO-8859-15として安全に扱うことができるかどうか、なぜ iconv は、具体的なエンコーディングの1つを選択しません。
追加された 著者 KoenigGunther,

file で使用される文字セット検出はかなり単純です。 UTF-8を認識します。そして、ISO 8859エンコーディングが "穴"を持つ0x80-0x9F範囲のバイトを探すことによって、 "ISO-8859"と "非ISO拡張ASCII"を区別しました。しかし、ISO 8859エンコーディングが使用されている を決定しようとはしません。これは、 ISO-8859-1 または ISO-8859-15 の代わりに ISO-8859

0
追加された