4. 如下代码是解决方法
[iyunv@tts177:/tmp]$more uuu.pl
#!/usr/bin/perl
use warnings;
use Data::Dumper;
use JSON;
use Encode;
use URI::Escape; ##正如帖子所说,不能用"use utf8"
my $str = '{"a":"\u6d4b\u8bd5"}';
my $p = decode_json($str);
my $s = $p->{'a'};
print $s,"\n"; ##第一个打印会打印出"Wide character in print at ./uuu.pl line 12." ,而且有时候还是乱码! utf8::encode($s); ##这里要非常注意,此函数返回值为0。如果写成 $s = utf::encode($s); 就错了!
print $s,"\n";
[iyunv@tts177:/tmp]$
[iyunv@tts177:/tmp]$./uuu.pl
Wide character in print at ./uuu.pl line 12.
测试
测试
[iyunv@tts177:/tmp]$
[iyunv@tts177:/tmp]$more uuu.pl
#!/usr/bin/perl
use warnings;
use Data::Dumper;
#use URI::Escape;
my $unicode = "\x{505c}\x{8f66}";
utf8::encode( $unicode );
print $unicode;
[iyunv@tts177:/tmp]$
[iyunv@tts177:/tmp]$./uuu.pl
停车[iyunv@tts177:/tmp]$