Incontro spesso file di testo (come file di sottotitoli nella mia lingua madre, il persiano ) con problemi di codifica dei caratteri. Questi file vengono creati su Windows e salvati con una codifica inadatta (sembra essere ANSI), che sembra incomprensibile e illeggibile, in questo modo:
In Windows, puoi risolverlo facilmente usando Notepad ++ per convertire la codifica in UTF-8, come di seguito:
E il risultato leggibile corretto è così:
Ho cercato molto una soluzione simile su GNU / Linux, ma sfortunatamente le soluzioni suggerite (ad esempio questa domanda ) non funzionano. Soprattutto, ho visto la gente suggerire iconv
e recode
ma non ho avuto fortuna con questi strumenti. Ho testato molti comandi, inclusi i seguenti, e tutti hanno fallito:
$ recode ISO-8859-15..UTF8 file.txt
$ iconv -f ISO8859-15 -t UTF-8 file.txt > out.txt
$ iconv -f WINDOWS-1252 -t UTF-8 file.txt > out.txt
Nessuno di questi ha funzionato!
Sto usando Ubuntu-14.04 e sto cercando una soluzione semplice (GUI o CLI) che funzioni esattamente come Notepad ++.
Un aspetto importante dell'essere "semplice" è che l'utente non è tenuto a determinare la codifica di origine; piuttosto la codifica di origine dovrebbe essere rilevata automaticamente dallo strumento e solo la codifica di destinazione dovrebbe essere fornita dall'utente. Tuttavia, sarò anche felice di conoscere una soluzione funzionante che richiede la codifica del codice sorgente.
Se qualcuno ha bisogno di un caso di prova per esaminare diverse soluzioni, l'esempio sopra è accessibile tramite questo link .
iso-639
ma questo non sembra essere disponibile in nessuno dei due iconv
o recode
. Almeno, non lo vedo nell'output di iconv -l
.
vim
ma non ha funzionato.
vim '+set fileencoding=utf-8' '+wq' file.txt
.