zoukankan      html  css  js  c++  java
  • perl encode_json 会产生 UTF-8 (binary) string decode_json 需要一个 UTF-8 (binary) string

    encode_json
    
        $json_text = encode_json $perl_scalar
    Converts the given Perl data structure to a UTF-8 encoded, binary string.
    
    This function call is functionally identical to:
    
        $json_text = JSON->new->utf8->encode($perl_scalar)
    
    
      转换给定的perl数据结构到一个UTF-8编码的,2进制的字符串。
    
     encode_json 产生一个UTF-8编码的2进制字符
    
    
    
    [root@wx03 ~]# cat a15.pl 
    use JSON qw/encode_json decode_json/ ;
    use Encode;
    my $data = [
         {
             'name' => 'Ken' ,
             'age' => 19
         },
         {
             'name' => '测试' ,
             'age' => 25
         }
    ];
    my $json_out = encode_json ( $data );
    print $json_out;
    print "
    ";
    
    
    my $d=decode_utf8($json_out);
    print $d;
    print "
    ";
    
    
    [root@wx03 ~]# perl a15.pl 
    [{"age":19,"name":"Ken"},{"age":25,"name":"æµè¯"}]
    [{"age":19,"name":"Ken"},{"age":25,"name":"测试"}]
    
    
    encode_json 会产生一个utf-8的2进制格式
    
    
      decode_json
    
        $perl_scalar = decode_json $json_text
    The opposite of encode_json: expects an UTF-8 (binary) string and tries to parse that as an UTF-8 encoded JSON text, returning the resulting reference.
    
    This function call is functionally identical to:
    
        $perl_scalar = JSON->new->utf8->decode($json_text)
    
        与encode-接送相反,期望一个UTF-8(2进制)字符串尝试解析一个 UTF-8编码的JSON 文本,
    
        返回一个结果引用。
    
    
      decode_json 必须是unicode形式的字符,是一个UTF-8的2进制字符串
    
    
      [root@wx03 ~]# cat a14.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 "
    ";
      }
      else 
      {
      die $response->status_line;
      };
    
    
    my $r=encode_utf8($r);
    my $hash = decode_json ( $r );
    print "11111111111111111111
    ";
    #print Dumper($hash);
    print "产品列表
    ";
    print $hash->{data}->{dataList}->[0]->{name};
    [root@wx03 ~]# perl a14.pl 
    
    11111111111111111111
    产品列表
    中均-欧洲杯18号(葡萄牙加时/点球夺冠)[root@wx03 ~]# 

  • 相关阅读:
    ExtJS4.2学习(6)——基础知识之proxy篇
    undo损坏故障恢复(二)ORA-01092,ORA-00604,ORA-01110
    pat 1063. Set Similarity (25)
    汉语-汉字:彤
    地理-地名:九女集
    汉语-汉字:菅
    汉语-汉字:蒯
    汉语-汉字:旬
    汉语-汉字:弁
    汉语-汉字:尥
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13350554.html
Copyright © 2011-2022 走看看