Vyzkoušejte modul chardet Python, který je dostupný na PyPI:
pip install chardet
Poté spusťte chardetect myfile.txt
.
Chardet je založen na detekčním kódu používaném Mozillou, takže by měl poskytovat rozumné výsledky za předpokladu, že vstupní text je dostatečně dlouhý pro statistickou analýzu. Přečtěte si projektovou dokumentaci.
Jak bylo zmíněno v komentářích, je to docela pomalé, ale některé distribuce také dodávají původní verzi C++, jak nalezl @Xavier na https://superuser.com/a/609056. Někde je také verze Java.
Použil bych tento jednoduchý příkaz:
encoding=$(file -bi myfile.txt)
Nebo pokud chcete pouze skutečnou znakovou sadu (například utf-8
):
encoding=$(file -b --mime-encoding myfile.txt)
Na Linuxu založeném na Debianu poskytuje balíček uchardet (Debian / Ubuntu) nástroj příkazového řádku. Viz níže popis balíčku:
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
Nedovolte, aby myš probudila displeje z pohotovostního režimu
Jaké programovací jazyky mohu ve výchozím nastavení předpokládat na náhodném serveru Linux?