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)));

原文地址:https://www.cnblogs.com/hzcya1995/p/13349905.html