Кириллица в транслит


ramok аватар

ramok - Posted on 07 Декабрь 2009

Перевести по быстрому кириллицу в транслит можно так

$ echo Привет | iconv -t koi-7 | tr a-zA-Z A-Za-z
Priwet

Еще один способ

$ echo Привет | perl -mText::Iconv -pe '$_=Text::Iconv->new("","koi-7")->convert($_);tr/A-Za-z/a-zA-z/'
Priwet

Фишка в том что кодировка koi-8 составлена так что бы при конвертации в koi-7 (путем обнуления старшего бита), каждая буква русского алфавита соответствовала схожей по произношению букве латиницы. 'а' => 'a', 'б' => 'b', 'в' => 'w' и так далее.

Другая особенность в том, что если не указать iconv библиотеке исходную кодировку, он берет текущую кодировку системы.

0
Ваша оценка: Ничего

UTF-8 консоль:

$ echo "а;б;в;г;д;е;ё;ж;з;и;к;л;м;н;о;п;р;с;т;у;ф;х;ц;ч;ш;щ;ъ;ы;ь;э;ю;я" | iconv -t koi8-r | catdoc -d us-ascii -s koi8-r
a;b;w;g;d;e;yo;zh;z;i;k;l;m;n;o;p;r;s;t;u;f;kh;tz;ch;sh;sch;';y;';e;yu;ya

проблема в том, что строку "Привет Hi" конвертировать не выйдет, в отличие от

echo Привет Hi | catdoc -d us-ascii -s koi8-r
Priwet Hi

Ха! А почему Priwet, а не Privet?! Не уж, лучше графические интерфейсы.

Ммм... Способ совсем не катит.
"Здравствуйте, я ваша тетя" транслитеруется в "Zdrawstwujte, q wa[a tetq"
В какой Вселенной ЭТО транслит? :)

Это как-то по "очень быстрому". Есть же гост на транслитерацию.

ага в курсе Ж:-)
у того же iconv есть кодировка //translit, но она не документированная и часто в дистрибутивах не включена при компиляции

Отправить комментарий

Google Friend Connect (leave a quick comment)
loading...
Содержание этого поля является приватным и не предназначено к показу.