Как преобразовать UTF8 в KOI8R (строка передается как параметр, а вывод в консоль)

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

pas
Сообщения: 597
Статус: маньяк
ОС: Gentoo

Как преобразовать UTF8 в KOI8R

Сообщение pas »

Хочу преобразовать строку передаваемую как папаметр из UTF8 в KOI8R.
Нашел описание iconv попробовал следующим образом:
$(%u>iconv -f UTF-8 -t KOI8R)
где %u путь и имя файла в UTF-8 в результате хочу получить то же но в кодировке KOI8R, но не получается. Ожидает, что %u это команда. Как преобразовать передаваемую стоку в другую кодировку?
Спасибо сказали:
Аватара пользователя
Goodvin
Ведущий рубрики
Сообщения: 4333
Статус: ⚝⚠⚒⚑⚖☭☞☣☤&

Re: Как преобразовать UTF8 в KOI8R

Сообщение Goodvin »

Может все-таки прочитать man iconv для понимания того, как и какие ему передаются параметры, в том числе и и исходный файл для перекодировки ?
Там же ман простой до безобразия.
Спасибо сказали:
Аватара пользователя
malex
Сообщения: 374
ОС: debian

Re: Как преобразовать UTF8 в KOI8R

Сообщение malex »

iconv -f encoding -t encoding inputfile
Программа iconv изменяет кодировку символов файла inputfile . Результат выводится на стандартное устройство вывода, если не определен файл вывода параметром --output .
--output, -o file Определить файл вывода (вместо stdout)
Ну вот, еще один день прошел, а мы все еще живы. И может быть стали умнее.
Спасибо сказали:
pas
Сообщения: 597
Статус: маньяк
ОС: Gentoo

Re: Как преобразовать UTF8 в KOI8R

Сообщение pas »

В том то и дело, что мне сам файл перекодировать не нужно. Нужно перекодировать только строку, передаваемую непосредственно в команду. А iconv рассматривает все что передано вне опций как путь/имя файла.
Спасибо сказали:
Аватара пользователя
diesel
Бывший модератор
Сообщения: 5989
ОС: OS X, openSuSE, ROSA, Debian

Re: Как преобразовать UTF8 в KOI8R

Сообщение diesel »

pas писал(а):
01.11.2007 04:33
В том то и дело, что мне сам файл перекодировать не нужно. Нужно перекодировать только строку, передаваемую непосредственно в команду. А iconv рассматривает все что передано вне опций как путь/имя файла.



Код: Выделить всё

[vasiliy@beezir tmp]$ ./tmp.sh "Это тестовое сообщение"
Это тестовое сообщение
[vasiliy@beezir tmp]$ cat cp1251
пїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅ cp1251
[vasiliy@beezir tmp]$ i=$(iconv -f cp1251 -t utf8 cp1251); ./tmp.sh $i
это тестовое сообщение в cp1251
[vasiliy@beezir tmp]$ iconv -f cp1251 -t utf8 cp1251 |xargs ./tmp.sh
это тестовое сообщение в cp1251


./tmp.sh просто скриптик который печатает все аргументы. т.е. так как эти аргументы увидит гипотетическая программа. cp1251 - если не понятно - файл в cp1251, содержащий одну строку.

Код: Выделить всё

[vasiliy@beezir tmp]
[vasiliy@beezir tmp]$ cat tmp.sh
#!/bin/bash
echo $*
[vasiliy@beezir tmp] echo "это тестовое сообщение в cp1251"|iconv -f utf8 -t cp1251 > cp1251
Спасибо сказали:
pas
Сообщения: 597
Статус: маньяк
ОС: Gentoo

Re: Как преобразовать UTF8 в KOI8R

Сообщение pas »

Спасибо за ответ.
Спасибо сказали: