Я часто стикаюся з текстовими файлами (такими як файли субтитрів моєю рідною мовою, перською ) з проблемами кодування символів. Ці файли створені в Windows і зберігаються за допомогою непридатного кодування (здається, ANSI), яке виглядає химерним і нечитабельним, як це:

У Windows це можна легко виправити за допомогою Notepad ++ для перетворення кодування в UTF-8, як показано нижче:

А правильний читабельний результат такий:

Я багато шукав подібне рішення в GNU / Linux, але, на жаль, запропоновані рішення (наприклад, це питання ) не працюють. Найбільше, я бачив , як люди припускають , iconvі , recodeале у мене не було ніякої удачі з цими інструментами. Я перевірив багато команд, включаючи наступні, і всі не вдалися:
$ 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
Жоден із них не працював!
Я використовую Ubuntu-14.04 і шукаю просте рішення (GUI або CLI), яке працює так, як це робить Notepad ++.
Один важливий аспект "простоти" є те, що користувачеві не потрібно визначати кодування джерела; скоріше, кодування джерела повинно автоматично визначатися інструментом, і користувач повинен надавати тільки цільове кодування. Але, тим не менш, я також буду радий дізнатися про робоче рішення, яке вимагає надання кодування джерела.
Якщо комусь потрібен тестовий випадок для вивчення різних рішень, наведений вище приклад доступний за цим посиланням .
iso-639але це , здається, не доступний ні в одному iconvабо recode. Принаймні, я не бачу цього у виході iconv -l.
vimале це не спрацювало.








vim '+set fileencoding=utf-8' '+wq' file.txt.