Newsgroup: it.comp.os.linux.iniziare
Titolo: Codifica dei files ("file")

In un altro usergroup (su vim) c'è stata una discussione interessante sul
modo di sapere la codifica di un file senza aprirlo. Io avevo suggerito,
per files di testo, di usare semplicemente da shell il comando "file", che
restituisce, ad esempio, per due files simili ma con encoding diverso:
test01.txt: ASCII text
test02.txt: UTF-8 Unicode text
Ma se si tratta di files HTML, LaTeX, OpenOffice, restituisce il tipo, ad
esempio:
test03: LaTeX 2e document text
indipendentemente dall'estensione, come normale in ambienti Unix (altrimenti
per forzarlo a questo c'è l'opzione -f).
Domanda: esiste un comando che restituisca l'encoding senza preoccuparsi del
tipo file (mime), quindi che mi dic ad es. se un file OpenOffice è latin1,
oppure UTF8, eccetera? Questo, ripeto, senza aprire il file, altrimenti
ogni programma esegue il suo "detect".
Grazie!
guido
-- 
http://docenti.unicatt.it/milanese_guido
http://www.arsantiqua.org

 del tipo file (mime)
[...]
forse
*Enca*
- 
http://linux.die.net/man/1/enca
ma non ne sono per nulla sicuro
-- 
Puppy Linux wiki:  
http://puppylover.netsons.org/dokupuppy
Puppy Linux Forum: 
http://puppylinux.ilbello.com
Windows me genuit, Ubuntu rapuere / tenet nunc Puppy Linux...

 suo "detect".  
Tieni conto che il "riconoscimento" della codifica di un file di testo
(senza l'indicazione esplicita, insomma) è un problema turing-completo, in
quanto molte codifiche si sovrappongono, altre invece usano più byte per
carattere (o, peggio, un numero *variabile* di byte per carattere), ed è
necessario, eventualmente, anche cercare di riconoscere la lingua (umana!)
delle parole scritte, o, almeno, andare alla ricerca di qualche parola
chiave...
So che gli sviluppatori di mozilla hanno scritto un riconoscitore del genere
(quello implementato nel programma file AFAIK è un po' più grezzo e ha
un'accuratezza minore), ma non so quanto siano a punto per rilasciare un
programma/libreria stand-alone
-- 
By ZeD

Guido Milanese ha scritto:

No. [*]
Servirebbe un programma che interpreti i formati di tutti i file,
cosa abbastanza assurda.
File può capire dai primi byte del file di che cosa si tratta, e
nel caso di ascii, verifica la codifica leggendolo semplicemente.
Lo dovesse fare per i documenti openoffice, dovrebbe decodificare
il formato.
[*] AFAIK
-- 
           |Save our planet!
    Ciao   |Save wildlife!
   roberto |For your E-MAIL use ONLY recycled Bytes  !!
           |roberto poggi   
rpo...@softhome.net

 ma non ne sono per nulla sicuro
Fai bene a non essere sicuro:
Name
enca -- detect and convert encoding of text files
_text_ files ;-)


Ringrazio per i suggerimenti. Due conclusioni:
(1) "enca" era quello che mi serviva. Test:
enca -L none test.html 
        Universal transformation format 8 bits; UTF-8
enca -L none test.tex
        Universal transformation format 8 bits; UTF-8
Quindi diverso da 'file', che restituirebbe rispettivamente (a) file HTML e
(b) file LaTeX.
(2) l'esempio che avevo fatto di un file di OpenOffice era assolutamente
sbagliato. Non uso quasi mai i word-processors (scrivo quasi tutto in
LaTeX) e non avevo pensato al formato di OO, che è compresso. Mi scuso per
l'esempio errato. Per il resto, OK 'enca' che non conoscevo; bello
strumento davvero.


 e (b) file LaTeX.
Magari oramai è inutile, ma già che stai prova a dare un'occhio a mguesser:
http://www.mnogosearch.org/guesser/
-- 
By ZeD

 Note that other "almost text" formats like HTML will return bad results.
il che mi sembra che renda 'enca' più utile ai miei fini.
Quanti progetti sconosciuti ai più! e grazie per la segnalazione.
gm
