- 论坛徽章:
- 0
|
本帖最后由 paktc 于 2014-01-11 13:12 编辑
在windows用cmd,改了一下,信息重新编码为CP936规范再输出:- #! /usr/bin/perl
- # 学习perl LWP时用post做的翻译小脚本
- # 调用的是有道词典
- # 作者:第2012位菜鸟
- # 原文链接 http://www.cnblogs.com/caibird/archive/2013/03/22/2974999.html
- use strict;
- use warnings;
- use LWP::UserAgent;
- use JSON ;
- use Encode;
- #use Data::Dumper;
- binmode(STDOUT,':encoding(CP936)');
- my $browser = LWP::UserAgent->new();
- print "Please input the word:";
- chomp (my $input = <STDIN>);
- my $response = $browser->post(
- # 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=https://www.google.com.hk/',
- 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=null',
- [
- 'type' => 'AUTO',
- 'i' => "$input",
- 'doctype' => 'json',
- ],
- );
- if($response->is_success){
- my $result = $response->content;
- my $json = new JSON;
- my $obj = $json->decode($result);
- #print Dumper $obj;
- my $trans = @{$obj->{'translateResult'}[0]}[0]->{"tgt"};
- my $string;
- eval{
- $string = join " ", @{$obj->{'smartResult'}->{"entries"}};
- };
- my $say1="\x{7ffb}\x{8bd1}\x{7ed3}\x{679c}\x{ff1a}";
- my $say2="\x{5176}\x{4ed6}\x{7ed3}\x{679c}\x{ff1a}";
- $trans=decode('UTF-8',$trans) if $trans;
- $string=decode('UTF-8',$string) if $string;
- print $say1, $trans, "\n", $say2, $string, "\n";
- }
- <STDIN>;
复制代码 |
|