Я і ubuntu »- конвертація кодувань текстових файлів

Конвертація кодувань текстових файлів

Є ще люди використовують Windows! І іноді вони можуть надіслати вам текстові файли з розширенням txt (вони ж не знають що текстові файли і без розширення бувають 🙂) або щось типу такого. Якщо спробувати відкрити ці файли в gedit, без застосування спеціального чарівництва. то замість українських літер будуть каракулі.

А що робити, якщо потрібно не просто прочитати ці файли, а працювати з ними? Правильно, їх потрібно перекодувати в нормальну кодування. Є кілька рецептів цієї магії:
1. Використовувати вбудовану утиліту iconv - це шлях справжнього лінуксойдов, тому man iconv

2. Використовувати іншу утиліту: recode. Це шлях тих, хто любить трохи простіше. Але її спочатку потрібно встановити:

Використання цієї утиліти трохи складніше її установки:

де:
CP1251 - кодування в якій зараз знаходиться файл;
UTF8 - в якому кодуванні файл повинен бути;
file.txt - файл, який потрібно перекодувати.

3. Використовувати gedit. Цей спосіб я б порекомендував у разі якщо потрібно перекодувати всього кілька файлів, причому вносячи в них зміни.
Відкриваємо файл в «рідній» кодуванні:

Вносимо всі необхідні зміни, і в меню gedit вибираємо Файл - Зберегти як .... У вікні вказуємо потрібне ім'я файлу і нормальну кодування.
Зауваження: З кодуванням CP1251 gedit не захотів відкривати файл знаходиться в кодуванні windows-1251!

Якщо хто ще знає способи - діліться! Так як плюралізм способів вирішення завдання - це те що відрізняє Linux від інших ОС.

Дякуємо. Чи не знав про iconv і recode.
Зазвичай я правлю в gconf-editor рядки / apps / gedit-2 / preferences / encodings / auto_detected і shown_in_menu додаючи WINDOWS-1251 відразу після UTF-8

чому ж iconv складніше другого?
iconv -f ... -t .... і в пайп

Ось це найкраще.

gidiara, в ньому навіть банальної підсвічування синтаксису немає!

Ці засоби хороші, якщо потрібно конвертувати лише кілька файлів (можна вручну відкривати і kate, і gedit і т.п. і зберігати; kate тут зручніше, тому що вже вже відкритий файл з абракадаброю добре перекодовує через Tool -> Encoding -> Autodetect), або якщо всі файли в одній відомій кодуванні. А якщо потрібно перекодувати багато файлів, а вони в різних кодуваннях (практично, це koi8-r і window-1251)?
Через Synaptic встановлюємо пакет enca. Приклад використання:

enconv -L ru -x UTF-8 * .txt

Ця команда конвертує всі текстові файли (* .txt) з різних українських кодувань (-L ru) в кодування юнікод (-x UTF-8). enconv входить в пакет enca.

Leafpad хороший, по функціональності схожий з Notepad'ом: не вміє взагалі нічого, крім, власне, друкування і читання тексту. Зате з кодуваннями проблем не має. Якраз те, що треба звичайному користувачеві.

я написав простецький скрипт, який показує як виглядають перші рядки файлу якщо перекодувати з cp1251 і пропонує вибір: перекодувати або наступну кодування спробувати. мені здається з консолі таки швидко і зручно виходить.

Олександр, а поділитися посиланням на скрипт з прикладами використання?