URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 83602
[ Назад ]

Исходное сообщение
"bash qwertyuiop йцукенгшщз"

Отправлено zvdaniel , 10-Янв-09 14:38 
Уважаемые гуру подскажите как реализовать это:
на входе есть текстовый файл в кодировке UTF8 содержащий русский текст но набранный какбы на латинской раскладке, т.е следующем виде(содержание):

ghbdtn lheu

означает

привет друг

как его перекодировать в читаемый вид?
пробовал так:

#!/bin/sh
eng="qwe"
rus="йцу"
cat logxx.txt | tr $eng $rus > resultlog.txt

ну не прокатило на выходе кракозябры


Содержание

Сообщения в этом обсуждении
"bash qwertyuiop йцукенгшщз"
Отправлено angra , 10-Янв-09 14:57 
Открываю истину кодировка utf8(да и другие тоже) полностью сохраняют первые 128 символов. Так что говорить об utf-8(или другой кодировке) для файла состоящего из латинских букв смешно.

Привести нормальный пример работы+ошибки вы конечно не в состоянии, наверно из соображений секурности. Демонстрирую что tr работает на приведенном вами же тексте:
$ eng="ghbdtnleu";rus="приветдуг";echo ghbdtn lheu | tr $eng $rus
привет друг


"bash qwertyuiop йцукенгшщз"
Отправлено zvdaniel , 10-Янв-09 15:20 
>Открываю истину кодировка utf8(да и другие тоже) полностью сохраняют первые 128 символов.
>Так что говорить об utf-8(или другой кодировке) для файла состоящего из
>латинских букв смешно.
>
>Привести нормальный пример работы+ошибки вы конечно не в состоянии, наверно из соображений
>секурности. Демонстрирую что tr работает на приведенном вами же тексте:
>$ eng="ghbdtnleu";rus="приветдуг";echo ghbdtn lheu | tr $eng $rus
>привет друг

простите я вас не понял
eng="ghbdtnleu";rus="приветдуг";echo ghbdtn lheu | tr $eng $rus
эта команда выводит у меня кракозябры

думаю надо как то так копать но как именно не пойму
eng="ghbdtnleu";rus="приветдуг";echo "ghbdtn lheu" | tr $eng $rus | iconv -f koi8-r
кракозябры но по длине уже нормально показывает


"bash фывапролдж"
Отправлено Andrey Mitrofanov , 10-Янв-09 15:46 
>думаю надо как то так копать но как именно не пойму

Думать -- оно, это вам не хухры-мухры... Осторожнее, не пораньтесь.

>| iconv -f koi8-r
>кракозябры но по длине уже нормально показывает

$ eng="ghbdtnleu";rus="`echo "приветдуг"|recode -f u8..koi8-r`";echo ghbdtn lheu | tr $eng $rus|recode koi8-r..u8