Я часто переключаюсь между Ubuntu и Windows, поэтому у меня есть некоторые проблемы с кодированием текстовых файлов.
Если я сохраню текстовый файл в Ubuntu, в обеих системах все работает нормально. Но Ubuntu не обнаруживает кодировку файлов, сохраненных в Windows. Каждый раз, когда я открываю «файл Windows» в текстовом редакторе Ubuntu, мне приходится менять параметры кодирования.
Решением является изменение кодировки с Windows-1250 на utf-8.
Итак, вопрос в том, как открыть каждый файл в Windows-1250 и сохранить его в UTF-8, для каждого файла в подкаталогах текущего каталога (я имею в виду рекурсивно). Могу ли я сделать это в терминале или мне нужно какое-то внешнее приложение.
Я с нетерпением жду вашей помощи.
Я предпочитаю использовать recode
для этого. Это не установлено по умолчанию, но доступное через пакет тем же именем. Это также изменяет окончания строки CRLF на LF.
sudo apt-get install recode
recode cp1250.. file.txt
можно сделать это для всех txt файлов во всем dir
recode cp1250.. ./*.txt
И рекурсивно путем объединения с find
find . -type f -name "*.txt" -exec recode cp1250.. {} +
, стандартная опция состоит в том, чтобы использовать эти iconv
команда, которая установлена по умолчанию, но это не изменяет окончания строки, таким образом, необходимо сделать это на другом шаге:
iconv -f cp1250 < file.txt | sed В конечном счете, я рекомендовал бы изменить набор символов редактора Ваших окон по умолчанию и строку, заканчивающуюся к UTF-8 и окончаниям строки UNIX (LF, \n
), чтобы избежать необходимости делать преобразование после факта.
<час> средства CR Возврат каретки (\r
)
средства LF Перевод строки (\n
)
Windows использует обоих, но подобное Unix системное использование [только 1 122] LF.
s/\r$//' > newfile.txt
В конечном счете, я рекомендовал бы изменить набор символов редактора Ваших окон по умолчанию и строку, заканчивающуюся к UTF-8 и окончаниям строки UNIX (LF, \n
), чтобы избежать необходимости делать преобразование после факта.
средства CR Возврат каретки (\r
)
средства LF Перевод строки (\n
)
Windows использует обоих, но подобное Unix системное использование [только 1 122] LF.
Сублимированный текст делает сохранение в другой файл, кодирующий довольно легкий. Можно также вновь открыться с другим кодированием и работать с несколькими файлами, проверить этот ответ для получения дополнительной информации.