Correzione malformazione codifica file TXT: copertina

Quando un file TXT restituisce l'errore "application/octet-stream; charset=binary"

Può capitare che un classico file TXT quando lo si apre risulti in parte illeggibile, con caratteri sostituiti da strani simboli.
Questo può facilmente avvenire con file (molto) vecchi.
Da un terminale linux possiamo avere errori come in questo esempio:


iconv -t utf-8 -o nomefile.out.txt nomefile.txt
iconv: sequenza di input non consentita alla posizione 241

file nomefile.txt
application/octet-stream; charset=binary

dos2unix nomefile.txt
dos2unix: Binary symbol 0x1A found at line 38

La causa potrebbe essere una errore nella codifica dei file.
L'output restituito da file non significa che è un file binario, ma che non riesce a determinare la codifica.

Il comando chardetect offre una migliore capacità di individuazione, ma non è infallibile.
L'output potrebbe essere come segue:

chardetect nomefile.txt
nomefile.txt: CP437 with confidence 0.4993942691198817

Comunque a volte bisogna procedere manualmente, per tentativi, a seconda della profondità della corruzione del file.

Qui ipotizziamo che chardetect abbia correttamente individuato la codifica.
Procediamo ora a correggere la codifica con iconv:

iconv -f CP437 -t utf-8 -o nomefile.utf8.txt nomefile.txt

Il significato dell'istruzione è il seguente:

  • -f: sta per from-encoding . Indica con quale codifica deve leggere il file sorgente;
  • -t: sta per to-encoding . Indica in quale codifica deve trasporre i dati letti;
  • -o: indica il file di output che verrà creato;
  • nomefile.txt: è il file sorgente, ovvero il file corrto da sistemate.

WEBGRAFIA

HowTo: Check and Change File Encoding In Linux, https://www.shellhacks.com/linux-check-change-file-encoding/
Convert binary encoding that head and Notepad can read to UTF-8, https://unix.stackexchange.com/questions/304177/convert-binary-encoding-that-head-and-notepad-can-read-to-utf-8