Хочу преобразовать строку передаваемую как папаметр из UTF8 в KOI8R.
Нашел описание iconv попробовал следующим образом:
$(%u>iconv -f UTF-8 -t KOI8R)
где %u путь и имя файла в UTF-8 в результате хочу получить то же но в кодировке KOI8R, но не получается. Ожидает, что %u это команда. Как преобразовать передаваемую стоку в другую кодировку?
Как преобразовать UTF8 в KOI8R (строка передается как параметр, а вывод в консоль)
Модератор: Bizdelnick
-
Goodvin
- Ведущий рубрики
- Сообщения: 4333
- Статус: ⚝⚠⚒⚑⚖☭☞☣☤&
Re: Как преобразовать UTF8 в KOI8R
Может все-таки прочитать man iconv для понимания того, как и какие ему передаются параметры, в том числе и и исходный файл для перекодировки ?
Там же ман простой до безобразия.
Там же ман простой до безобразия.
-
malex
- Сообщения: 374
- ОС: debian
Re: Как преобразовать UTF8 в KOI8R
iconv -f encoding -t encoding inputfile
Программа iconv изменяет кодировку символов файла inputfile . Результат выводится на стандартное устройство вывода, если не определен файл вывода параметром --output .
--output, -o file Определить файл вывода (вместо stdout)
Программа iconv изменяет кодировку символов файла inputfile . Результат выводится на стандартное устройство вывода, если не определен файл вывода параметром --output .
--output, -o file Определить файл вывода (вместо stdout)
Ну вот, еще один день прошел, а мы все еще живы. И может быть стали умнее.
-
pas
- Сообщения: 597
- Статус: маньяк
- ОС: Gentoo
Re: Как преобразовать UTF8 в KOI8R
В том то и дело, что мне сам файл перекодировать не нужно. Нужно перекодировать только строку, передаваемую непосредственно в команду. А iconv рассматривает все что передано вне опций как путь/имя файла.
-
diesel
- Бывший модератор
- Сообщения: 5989
- ОС: OS X, openSuSE, ROSA, Debian
Re: Как преобразовать UTF8 в KOI8R
Код: Выделить всё
[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
Спасибо за ответ.