GNU/Linux >> Linux の 問題 >  >> Linux

テキストファイルのエンコーディングを自動検出する方法は?

PyPI で利用可能な chardet Python モジュールを試してください:

pip install chardet

次に chardetect myfile.txt を実行します .

Chardet は Mozilla が使用する検出コードに基づいているため、入力テキストが統計分析に十分な長さであれば、妥当な結果が得られるはずです。プロジェクトのドキュメントを読んでください。

コメントで述べたように、かなり遅いですが、@Xavier が https://superuser.com/a/609056 で見つけたように、一部のディストリビューションでは元の C++ バージョンも出荷されています。 Java版もどこかにあります。


この単純なコマンドを使用します:

encoding=$(file -bi myfile.txt)

または、実際の文字セットだけが必要な場合 (utf-8 など) ):

encoding=$(file -b --mime-encoding myfile.txt)

Debian ベースの Linux では、uchardet パッケージ (Debian / Ubuntu) がコマンド ライン ツールを提供します。パッケージの説明の下を参照してください:

 universal charset detection library - cli utility
 .
 uchardet is a C language binding of the original C++ implementation
 of the universal charset detection library by Mozilla.
 .
 uchardet is a encoding detector library, which takes a sequence of
 bytes in an unknown character encoding without any additional
 information, and attempts to determine the encoding of the text.
 .
 The original code of universalchardet is available at
 http://lxr.mozilla.org/seamonkey/source/extensions/universalchardet
 .
 Techniques used by universalchardet are described at
 http://www.mozilla.org/projects/intl/UniversalCharsetDetection.html

Linux
  1. テキストファイル内の重複行を削除するにはどうすればよいですか?

  2. テキストファイルで一致しない角かっこを見つける方法は?

  3. コマンドへの引数としてテキストファイルの各行を解析する方法は?

  1. サブプロセス呼び出しをテキスト ファイルにパイプするにはどうすればよいですか?

  2. ファイルの先頭にテキストを挿入する方法は?

  3. 端末でテキスト ファイルを編集する方法

  1. Linuxでファイルの終わりにテキストを追加する方法

  2. LinuxでファイルをUTF-8エンコーディングに変換する方法

  3. Linuxでファイルの終わりにテキストを簡単に追加する方法