Якось банально виникла завдання поміняти кодування файлу з 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
    Відповісти