Якось банально виникла завдання поміняти кодування файлу з Windows CP-1251 на UTF-8 допомогою консолі. Як правило, завдання виникає при роботі з двома системами windows і linux. Пояснення цьому просте, windows воліє працювати з текстовими файлами кодування CP-1251, а linux в свою чергу використовує кодування UTF-8. Способів зміни кодування файлу виявилося безліч, опишу той, який сподобався мені.
Існує така утиліта як enconv, вона входить в склад пакета enca, який в свою чергу спрощує роботу з кодуваннями файлів.
Отже, для початку непогано б дізнатися, в якому кодуванні файл:
# file -i file.txt
Або так
# enca file.txt
Дізнавшись вихідну кодування файлу, міняємо її за допомогою команди:
# iconv -f cp1251 -t utf8 исходный.txt -o конечный.txt
Є спосіб, при якому програма сама визначить кодування файлу, і перетворює її до кодування поточної локалі:
# enconv file.txt
Перетворити файл, кодування відмінну від поточної локалі, можна додавши параметр -x:
# enconv -x CP1251 file.txt
Отже, вважаю ця замітка знадобитися в роботі, зокрема особам, яким доводиться працювати з консолі linux.
Додав: htmaker, 31.03.2013
(2 голосів, середній: 5,00 з 5)
Завантаження…
Діліться з друзями:
См. також:
Оновлення пакетів в CentOS
Рубрика: Linux
Bash: mail: command not found
Рубрика: Linux
Виставляємо тимчасову зону в CentOS 7
Рубрика: Linux
Налаштування SELinux, включення, відключення
Рубрика: Linux, Інф. безпека
Змінюємо пароль root в MySQL 5.7
Рубрика: Linux, MySQL
Установка і настройка mSMTP на Linux
Рубрика: Linux
Установка GIT на CentOS 7
Рубрика: Linux
Як відключити IPv6 в CentOS 7?
Рубрика: Linux
Ротація логів в Linux
Рубрика: Apache, Linux
Коментарі
05.01.2016 у 08:02
Лойс
Відповісти
31.03.2016 в 23:26
як перекодувати всі файли в каталозі?
Відповісти
12.04.2016 в 19:24
for fname in *.htm; do enconv “$fname”; done
Відповісти