Wide character in print at a2.pl line 返回json 需要encode_utf8

centos6.5:/root/test#cat a2.pl 
use Net::SMTP;
use LWP::UserAgent;
use HTTP::Cookies;
use HTTP::Headers;
use HTTP::Response;
use Encode;
use JSON;
use File::Temp qw/tempfile/;
use HTTP::Date qw(time2iso str2time time2iso time2isoz);
use Data::Dumper;
my $CurrTime = time2iso(time());
my $dis_mainpublish='中均资本';
my $ua = LWP::UserAgent->new;
$ua->timeout(10);
$ua->env_proxy;
my $now          = time();
$ua->agent('Mozilla/5.0');
my $cookie_jar = HTTP::Cookies->new(

    file           => 'lwp_cookies.txt',
    autosave       => 1,
    ignore_discard => 1
);
$ua->cookie_jar($cookie_jar);
my $response = $ua->get("https://www.zjcap.cn/web/noauth?method=%2Fproduct%2Flist&duration=&entryUnit=&productType=1&status=&yield=&productName=&pageNum=1&pageSize=6&_=1468156037154");


if ($response->is_success) {
  $r = $response->decoded_content;   
  print "\n";
  }
  else 
  {
  die $response->status_line;
  };
#my $r=encode_utf8($r);
my $hash = decode_json ( $r );
print "11111111111111111111\n";
print "产品列表\n";
print $hash->{data}->{dataList}->[0]->{name};
print "\n";
centos6.5:/root/test#perl a2.pl 

11111111111111111111
产品列表
Wide character in print at a2.pl line 40.
爱晚-融通宝第9期



因为decode_json必须是unicode字符  ,返回的json数据前需要转成unicode 

my $r=encode_utf8($r);




centos6.5:/root/test#cat a2.pl 
use Net::SMTP;
use LWP::UserAgent;
use HTTP::Cookies;
use HTTP::Headers;
use HTTP::Response;
use Encode;
use JSON;
use File::Temp qw/tempfile/;
use HTTP::Date qw(time2iso str2time time2iso time2isoz);
use Data::Dumper;
my $CurrTime = time2iso(time());
my $dis_mainpublish='中均资本';
my $ua = LWP::UserAgent->new;
$ua->timeout(10);
$ua->env_proxy;
my $now          = time();
$ua->agent('Mozilla/5.0');
my $cookie_jar = HTTP::Cookies->new(

    file           => 'lwp_cookies.txt',
    autosave       => 1,
    ignore_discard => 1
);
$ua->cookie_jar($cookie_jar);
my $response = $ua->get("https://www.zjcap.cn/web/noauth?method=%2Fproduct%2Flist&duration=&entryUnit=&productType=1&status=&yield=&productName=&pageNum=1&pageSize=6&_=1468156037154");


if ($response->is_success) {
  $r = $response->decoded_content;   
  print "\n";
  }
  else 
  {
  die $response->status_line;
  };
my $r=encode_utf8($r);
my $hash = decode_json ( $r );
print "11111111111111111111\n";
print "产品列表\n";
print $hash->{data}->{dataList}->[0]->{name};
print "\n";
centos6.5:/root/test#perl a2.pl 

11111111111111111111
产品列表
爱晚-融通宝第9期

转载于:https://www.cnblogs.com/zhaoyangjian724/p/6198988.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值