Sul mio filesystem (Windows 7) ho alcuni file di testo (questi sono file di script SQL, se questo è importante).
Se aperto con Notepad ++ , nel menu "Codifica" alcuni di essi hanno una codifica di "UCS-2 Little Endian" e alcuni di "UTF-8 senza BOM".
Qual è la differenza qui? Sembrano tutti essere script perfettamente validi. Come potrei dire quali codifiche ha il file senza Notepad ++?
enca
e chardet
per sistemi POSIX.
iconv
in particolare è utile per questo scopo. Sostanzialmente si ripetono le stringhe / il testo di caratteri corrotti attraverso diverse codifiche per vedere quale funziona. Vinci, quando i personaggi non sono più corrotti. Mi piacerebbe rispondere qui, con un esempio programmatico. Ma purtroppo è una domanda protetta.
chardet
o chardetect
non è disponibile sul proprio sistema, è possibile installare il pacchetto tramite il proprio gestore pacchetti (ad es apt search chardet
. Su ubuntu / debian il pacchetto viene solitamente chiamato python-chardet
o python3-chardet
) o tramite pip con pip install chardet
(o pip install cchardet
per la versione ottimizzata c più veloce).