Il problema del charset (ovvero del set di caratteri utilizzato da un sistema operativo, o da un programma) è molto diffuso.
Convmv è un programma da linea di comando (che quindi dovrete eseguire dal terminale) che è in grado di cambiare il charset del nome dei file e delle directory (solo del nome! non il contenuto). Il suo utilizzo è molto semplice. Di seguito vedremo come utilizzarlo.
Convmv ha una logica di funzionamento molto semplice: occorre indicare il charset attuale del nome del file, il charset che volete acquisisca il file e, ovviamente, il nome del file o della directory. Ecco quindi la sintassi del comando:
$: convmv -f charsetorigine -t charsetuscita nomefile
Dove “charsetorigine” è il charset originale del nome del file, mentre “charsetuscita” indica il charset che deve acquisire il nome del file. I file che provengono da Windows di solito hanno charset “latin1″, quindi nell’esempio useremo questo. Se usate ubuntu e non avete fatto particolari operazioni, il charset usato dal vostro sistema dovrebbe essere utf8.
Se volete scoprire quale è il charset in uso nel vostro sistema, date sul terminale il seguente comando:
$: echo $LANG
Detto ciò, vediamo in pratica come potrebbe essere l’utilizzo di convmv:
$: convmv -f latin1 -t utf8 nomefile.txt
Se eseguite il comando così come scritto, il programma si limiterà a farvi vedere come cambierebbe il nome del file, senza modificarlo. Se volete effettivamente modificare il nome del file (attenzione che poi non si può tornare indietro!) allora dovete aggiungere il parametro “–notest”. Ecco quindi il comando completo per modificare il charset (inserisco anche dei charset di esempio):
$: convmv -f latin1 -t utf8 –notest nomefile.txt
Altri parametri utili
–list Restituisce tutti i charset disponibili nel sistema.
$: convmv –list
-r Applica le modifiche indicate in modo ricorsivo attraverso una directory. Se quindi vogliamo cambiare il charset a tutti i file presenti in una directory, in modo ricorsivo, dovremo dare il comando:
$: convmv -r –notest -f latin1 -t utf8 nomedirectory
–upper , –lower Trasforma in uppercase (tutte maiuscole) o lowercase (tutte minuscole) le lettere del nome de(i) file cui viene applicato il comando.Ecco un esempio:
$: convmv –notest –lower -f latin1 -t utf8 NomeFile.txt
-i Modalità interattiva: verrà chiesto per ogni file se volete applicare la modifica.