2011-07-01 8 views
3

私はファイルの実際のエンコードとそのすべての複雑さを理解しようとすることでこの問題について読んできました。 しかし、ファイルのエンコーディングが保存されたときにどのように設定されたのかを知る必要があります。 Windowsはこの情報をファイルの種類、日付の変更などのどこかに保存しますか?Windows上のファイルにエンコード属性がありますか?

+0

http://stackoverflow.com/questions/21204948/store-text-file-character-set-encoding-in-file-metadata –

答えて

4

これは利用できません。 Windowsファイルシステム(NTFS)は、名前、拡張子、最後に書かれた日付などの些細なこと以外のファイルのメタデータを保存しません。ファイルタイプに固有のものは何もありません。

利用可能なのは、ファイルの先頭のバイトで、UTFエンコーディングとバイトオーダーを示すBOMです。 UTFでエンコードされたファイルにのみ存在し、残念なことにオプションです。実際のトラブルシューティングは、特定の8ビット非Unicodeコードページでエンコードされたテキストファイルです。通常、レガシーアプリケーションによって作成されます。あなたはそれを行うことはできませんが、ファイルがあなたのマシンから遠すぎて作成されていないことを願って、デフォルトのシステムコードページが一致するようにしてください。

2

オペレーティングシステムは、エンコードに関する情報をファイルに保存しません。エンコーディングはテキストファイルのみのプロパティです。テキストファイルの中には.txt拡張子がなく、一部の.txtファイルは実際にはテキストファイルではないため、エンコーディングをファイルに関連付けることはあまり意味がありません。

一部のUTF-8ファイルは、UTF-8ファイルであるかどうかを確認するために使用できるファイルの先頭にバイトオーダーマーク(BOM)を格納します。ただし、BOMが常に存在するとは限りません。また、UTF-8ファイルにはBOMが必要ありません。したがって、テキストファイルのエンコーディングを判断する唯一の方法は、ファイルを読むことができるまで別のエンコーディング方法でファイルを開くことです。

+0

Mac OS Xの場合:http://stackoverflow.com/questions/539294/ do-i-determined-file-encoding-in-osx#comment31829340_539323 –

関連する問題