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