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 ++?
encae chardetper sistemi POSIX.
iconvin 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.
chardeto chardetectnon è 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-chardeto python3-chardet) o tramite pip con pip install chardet(o pip install cchardetper la versione ottimizzata c più veloce).