GNU/Linux >> Linux Esercitazione >  >> Linux

Come rilevare automaticamente la codifica dei file di testo?

Prova il modulo Python chardet, disponibile su PyPI:

pip install chardet

Quindi esegui chardetect myfile.txt .

Chardet si basa sul codice di rilevamento utilizzato da Mozilla, quindi dovrebbe fornire risultati ragionevoli, a condizione che il testo di input sia sufficientemente lungo per l'analisi statistica. Leggi la documentazione del progetto.

Come accennato nei commenti, è piuttosto lento, ma alcune distribuzioni forniscono anche la versione C++ originale come @Xavier ha trovato in https://superuser.com/a/609056. C'è anche una versione Java da qualche parte.


Userei questo semplice comando:

encoding=$(file -bi myfile.txt)

O se vuoi solo il set di caratteri effettivo (come utf-8 ):

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

Su Linux basato su Debian, il pacchetto uchardet (Debian / Ubuntu) fornisce uno strumento a riga di comando. Vedi sotto la descrizione del pacchetto:

 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. Come aggiungere facilmente testo alla fine del file in Linux

  2. Come rimuovere le righe duplicate all'interno di un file di testo?

  3. Come spostare una riga in un file di testo su o giù di una riga?

  4. Come analizzare ogni riga di un file di testo come argomento di un comando?

  5. Come posso convogliare una chiamata di sottoprocesso a un file di testo?

Come confrontare e unire file di testo su Linux

Come creare directory da un file di testo in Linux

Come salvare l'output dei comandi di Linux in un'immagine o in un file di testo

Come bloccare un file di testo in Linux usando il comando flock

Come stampare righe duplicate in un file di testo in Linux

Come aggiungere testo all'inizio del file in Linux