2016-08-06 3 views
0

私の現在の解決策は、ファイルのすべてのバイトを読み込み、デコードしようとします。例外があれば、このファイルは適切にエンコードされません。他のよりエレガントな方法?ありがとう。Python 2.7ファイルがUTF-8でエンコードされているかどうかを確認します。

utfbytes.decode('utf-8') 

に関して、 林

+2

[Python:テキストファイルのエンコーディングを判断する方法はありますか?](http://stackoverflow.com/questions/436220/python-is-there-a-way-to-determine-the -encoding-of-text-file) –

+0

ありがとう@DeanFenster、投票アップ。サードパーティのライブラリを使用しないと、Python 2.7の組み込みソリューションを活用している私の現在のソリューションはすでに優れていますか? –

答えて

1

No。その答えから:

エンコードを常に正しく検出することは不可能です。

(chardetよくある質問:)

しかし、いくつかのエンコーディングは、特定の言語用に最適化され、そして言語がランダムではないですから。他のシーケンスは意味をなさないものの、一部の文字シーケンスは常にポップアップします。新聞を開いて「txzqJv 2!dasd0a QqdKjvz」という英語を堪能な人は、それが英語ではないことを即座に認識します(全部英語の文字で構成されています)。多くの "典型的な"テキストを研究することによって、コンピュータアルゴリズムはこのような流暢さをシミュレートし、テキストの言語についての知識を推測することができます。

はしかし、試してみて、エンコードの種類を見つけるための最善の努力をしないと存在しsome librariesがあります。

+0

Nick、ありがとう。サードパーティのライブラリを使用しないと、Python 2.7の組み込みソリューションを活用している私の現在のソリューションはすでに優れていますか? –

+1

例外を処理する限り、ソリューションは完璧に見えます! –

+0

ありがとう、ニック。良い週末を。あなたの返事に答えて、答えてください。 –

関連する問題