MoscowPM, добрый день,
написал скрипт, который в командной строке переводит используя google.com и translate.ru
(предварительно нужно, чтобы был запущен Firefox c активированным MozRepl и одна из вкладок была http://www.translate.ru/ )
 
https://github.com/mishin/gists/blob/master/g_and_p_trans.pl
 
в ubuntu все работает отлично (perl 5.14)
 
./g_and_p_trans.pl --from en --to ru --text "It is awesome"
 
google say:Это потрясающее
prompt say:Это удивительное
 
в Win Xp perl 5.14.2 perl -V (https://github.com/mishin/gists/blob/master/win_verion)
при запуске через  батник utf.cmd (https://github.com/mishin/gists/blob/master/utf.cmd)
cmd /u /c call g_and_p_trans.pl --from en --to ru --text "It is awesome" > out 2>&1
 
в out следующие строки
 
Cannot figure out an encoding to use at C:\Documents and Settings\rdtex1\ͮ桤﫳󺛇itHub\last_gists\g_and_p_trans.pl line 24
Wide character in say at C:\Documents and Settings\rdtex1\ͮ桤﫳󺛇itHub\last_gists\g_and_p_trans.pl line 62.
google say:
Это потрясающее
translate.ru say:
Это удивительное

utf в cmd
http://anvarichn.livejournal.com/43752.html

1) Внимание вопрос, судя по форумам и кляузы "Cannot figure out an encoding to use at "
прагма
 
use open ':locale';
 
под виндоуз сломана, как бы ее починить?
 
2) Можно, конечно не обращать внимание на ошибки, тогда utf.cmd будет таким
cmd /u /c call g_and_p_trans.pl --from en --to ru --text "It is awesome" > out
 
но опыт подсказывает, что если на них не обращать внимание, то потом можно не обнаружить и других ошибок,
которые могут возникать при доработке
 
другие, альтернативные способы с использованием
 
use Encode;
use Convert::Cyrillic;
my $interm_var =Convert::Cyrillic::cstocs( 'KOI8', 'UTF8', $translated_string );
Encode::from_to( $interm_var, 'utf-8', 'cp1251' );
utf8::encode($translated_string);
еще хуже, они работаю только с выводом от google,
но когда идет еще выбор из firefox,  то такие штучки не помогают, а только все запутывают
 
я все, спасибо, может будут какие идеи?
--
С уважением
Николай Мишин
 
-- 
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить