GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara mendeteksi penyandian file teks secara otomatis?

Coba modul chardet Python, yang tersedia di PyPI:

pip install chardet

Kemudian jalankan chardetect myfile.txt .

Chardet didasarkan pada kode deteksi yang digunakan oleh Mozilla, sehingga harus memberikan hasil yang masuk akal, asalkan teks input cukup panjang untuk analisis statistik. Baca dokumentasi proyek.

Seperti disebutkan dalam komentar, ini cukup lambat, tetapi beberapa distribusi juga mengirimkan versi C ++ asli seperti yang ditemukan @Xavier di https://superuser.com/a/609056. Ada juga versi Java di suatu tempat.


Saya akan menggunakan perintah sederhana ini:

encoding=$(file -bi myfile.txt)

Atau jika Anda hanya menginginkan kumpulan karakter yang sebenarnya (seperti utf-8 ):

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

Di Linux berbasis Debian, paket uchardet (Debian / Ubuntu) menyediakan alat baris perintah. Lihat di bawah deskripsi paket:

 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. Cara Mudah Menambahkan Teks ke Akhir File di Linux

  2. Bagaimana Cara Menghapus Garis Duplikat Di Dalam File Teks?

  3. Bagaimana Cara Memindahkan Garis Dalam File Teks Ke Atas Atau Ke Bawah Dengan Satu Baris?

  1. Bagaimana Menemukan Tanda Kurung yang Tak Tertandingi Dalam File Teks?

  2. Bagaimana Mengurai Setiap Baris File Teks Sebagai Argumen Untuk Perintah?

  3. Bagaimana cara menyalurkan panggilan subproses ke file teks?

  1. Cara Mengonversi File ke Encoding UTF-8 di Linux

  2. Bagaimana cara menambahkan teks ke file?

  3. Cara mengedit file teks di terminal saya