[Moscow.pm] перекодировка
Ruslan Zakirov
ruz на bestpractical.com
Чт Сен 5 14:44:06 PDT 2013
Нормально `use open` заюзать так:
http://gist.github.com/6456522
Но еще более верно:
use open ':locale';
И запускать с нужной локалью:
LANG="ru_RU.cp1251" gtrans.pl
Или если не может тулза установить переменную окружения, то:
gtrans.pl | iconv -t cp1251
Если и так не может, то тулзу обернуть в gtrans-cp1251.sh :)
Или --encoding аргумент добавить, разбор аргументов в BEGIN {}, а потом use
open $encoding? (':std', ":encoding($encoding)") : ':locale';
Кошерно :)
2013/9/5 Nikolay Mishin <mi на ya.ru>
> MoscowPM, добрый день,
>
> Есть скрипт
> перевода гугла из командной строки
> https://github.com/mishin/gists/blob/master/gtrans.pl
> запускается
>
> gtrans.pl --from en --to ru --text "This is a test"
>
> из командной строки
> гугл выдает строки в KOI
>
> я парсю вывод гугла:
>
> my @matches =
> $html =~
> m{onmouseout="this.style.backgroundColor='#fff'">(.*?)</span>}g;
>
> foreach my $translated_string (@matches) {
> my $interm_var =
> Convert::Cyrillic::cstocs( 'KOI8', 'UTF8', $translated_string );
> Encode::from_to( $interm_var, 'utf-8', 'cp1251' );
> say $interm_var;
> }
>
> вопрос, можно ли строку
>
> Convert::Cyrillic::cstocs( 'KOI8', 'UTF8', $translated_string );
> Encode::from_to( $interm_var, 'utf-8', 'cp1251' );
>
> заменить одним преобразованием, чтобы на выходе был win1251?
> у меня этого не получилось
> спасибо
>
> -
> С уважением
> Николай Мишин
>
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>
>
--
Best regards, Ruslan.
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20130906/97d74f70/attachment-0001.html>
Подробная информация о списке рассылки Moscow-pm