zoukankan      html  css  js  c++  java
  • perl json unicode 编码转换

    ###列出组信息
    use  LWP::UserAgent; 
    use LWP;
    use Encode;
    use LWP::Simple;
    use LWP::UserAgent;
    use HTTP::Cookies;
    use HTTP::Headers;
    use HTTP::Response;
    use Encode;
    use URI::Escape;
    use URI::URL;
    use JSON;
    use Data::Dumper;
      my $ua = LWP::UserAgent->new;
      $ua->agent("Mozilla/5.0 (Windows NT 6.1; rv:30.0) Gecko/20100101 Firefox/30.0");
      my $cookie_jar = HTTP::Cookies->new(
         file=>'lwp_cookies.txt',
         autosave=>1,
         ignore_discard=>1);
         $ua->cookie_jar($cookie_jar);
       my $token_url= 'http://127.0.0.1:8000/api2/auth-token/';
                    
      
       my $res = $ua->post($token_url,
                    {
                    'username'=>'015208@zjtlcb.com',
                    'password'=>'1234567'
                    });
       print $res->content();
       print "
    ";
       my $r= $res->content();
       my $r=encode_utf8($r);
       my $hash = decode_json($r);
       my $token =$hash->{"token"};
       print "$r is $r
    ";
      
       @header = (  
        'accept'=> "application/json",  
        'content-type'=> "application/json",  
        'Authorization'=> "Token $token" 
        );  
        
        $host="http://127.0.0.1:8000/api2/groups/";  
        $request = HTTP::Request->new(GET=>"$host");  
        $request->header(@header);  
      
        $response = $ua->request($request);  	
        #print $response->decoded_content;  
    	my $content=$response->content; 
        $r=encode_utf8($content);
    	$arr=decode_json($r);
    	#print Dumper(@{$arr->{"groups"}});
         foreach $a (@{$arr->{"groups"}}){
    	  my $groupname=$a->{"name"};
    	  my $groupid=$a->{"id"};
    	  print $groupid."---------".encode("gbk",decode("utf8",encode_utf8($groupname)))."
    ";;
    	  };
    
    解json 中文:
    D:apiscripts>perl get_list_group.pl
    {"token": "c22dd7abe13a14371ad28775f60bd6b0d99d5a8b"}
    $r is {"token": "c22dd7abe13a14371ad28775f60bd6b0d99d5a8b"}
    6---------信息开发部应用支持中心
    7---------信息开发部测试中心
    8---------信息开发部数据中心
    
    
    
    如果不解json呢?
    
    
    ###列出组信息
    use  LWP::UserAgent; 
    use LWP;
    use Encode;
    use LWP::Simple;
    use LWP::UserAgent;
    use HTTP::Cookies;
    use HTTP::Headers;
    use HTTP::Response;
    use Encode;
    use URI::Escape;
    use URI::URL;
    use JSON;
    use Data::Dumper;
      my $ua = LWP::UserAgent->new;
      $ua->agent("Mozilla/5.0 (Windows NT 6.1; rv:30.0) Gecko/20100101 Firefox/30.0");
      my $cookie_jar = HTTP::Cookies->new(
         file=>'lwp_cookies.txt',
         autosave=>1,
         ignore_discard=>1);
         $ua->cookie_jar($cookie_jar);
       my $token_url= 'http://127.0.0.1:8000/api2/auth-token/';
                    
      
       my $res = $ua->post($token_url,
                    {
                    'username'=>'015208@zjtlcb.com',
                    'password'=>'1234567'
                    });
       print $res->content();
       print "
    ";
       my $r= $res->content();
       my $r=encode_utf8($r);
       my $hash = decode_json($r);
       my $token =$hash->{"token"};
       print "$r is $r
    ";
      
       @header = (  
        'accept'=> "application/json",  
        'content-type'=> "application/json",  
        'Authorization'=> "Token $token" 
        );  
        
        $host="http://127.0.0.1:8000/api2/groups/";  
        $request = HTTP::Request->new(GET=>"$host");  
        $request->header(@header);  
      
        $response = $ua->request($request);  	
        print $response->decoded_content; 
    
    
    D:apiscripts>perl a1.pl
    {"token": "c22dd7abe13a14371ad28775f60bd6b0d99d5a8b"}
    $r is {"token": "c22dd7abe13a14371ad28775f60bd6b0d99d5a8b"}
    {"replynum": 0, "groups": [{"ctime": 1484871794663000, "creator": "015208@zjtlcb
    .com", "msgnum": 0, "mtime": 0, "id": 6, "name": "u4fe1u606fu5f00u53d1u90e8
    u5e94u7528u652fu6301u4e2du5fc3"}, {"ctime": 1484872473286000, "creator": "
    015208@zjtlcb.com", "msgnum": 0, "mtime": 0, "id": 7, "name": "u4fe1u606fu5f0
    0u53d1u90e8u6d4bu8bd5u4e2du5fc3"}, {"ctime": 1484872522972000, "creator":
    "015208@zjtlcb.com", "msgnum": 0, "mtime": 0, "id": 8, "name": "u4fe1u606fu5f
    00u53d1u90e8u6570u636eu4e2du5fc3"}]}
    
    
    
    输出为unicode格式,需要把unicode转换为中文
    
    
    ###列出组信息
    use  LWP::UserAgent; 
    use LWP;
    use Encode;
    use LWP::Simple;
    use LWP::UserAgent;
    use HTTP::Cookies;
    use HTTP::Headers;
    use HTTP::Response;
    use Encode;
    use URI::Escape;
    use URI::URL;
    use JSON;
    use Data::Dumper;
      my $ua = LWP::UserAgent->new;
      $ua->agent("Mozilla/5.0 (Windows NT 6.1; rv:30.0) Gecko/20100101 Firefox/30.0");
      my $cookie_jar = HTTP::Cookies->new(
         file=>'lwp_cookies.txt',
         autosave=>1,
         ignore_discard=>1);
         $ua->cookie_jar($cookie_jar);
       my $token_url= 'http://127.0.0.1:8000/api2/auth-token/';
                    
      
       my $res = $ua->post($token_url,
                    {
                    'username'=>'015208@zjtlcb.com',
                    'password'=>'1234567'
                    });
       print $res->content();
       print "
    ";
       my $r= $res->content();
       my $r=encode_utf8($r);
       my $hash = decode_json($r);
       my $token =$hash->{"token"};
       print "$r is $r
    ";
      
       @header = (  
        'accept'=> "application/json",  
        'content-type'=> "application/json",  
        'Authorization'=> "Token $token" 
        );  
        
        $host="http://127.0.0.1:8000/api2/groups/";  
        $request = HTTP::Request->new(GET=>"$host");  
        $request->header(@header);  
      
        $response = $ua->request($request);  	
        print $response->decoded_content; 
    	$f=$response->decoded_content; 
    	$f =~ s/\u([0-9a-fA-F]{4})/pack("U",,hex($1))/eg; 
    	print $f;
    	print encode("gbk",decode("utf8",encode_utf8($f)));

  • 相关阅读:
    Weak Event模型
    Dispatcher Queue性能分析
    WPF中ControlTemplate,ItemsPanelTemplate ,DataTemplate
    事件与委托
    DataGrid: 数据项更新并保持多选
    【C#学习笔记】using 三种使用方式
    Python快捷键
    比特率和波特率
    c#winform程序退出的方法
    C#socket通信-----多线程
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13349905.html
Copyright © 2011-2022 走看看