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