use Encode qw( decode );
$s = "高";
print(length($s), "\n"); # 3
$s = decode('utf8', "高");
print(length($s), "\n"); # 1
$s = do { use utf8; "高" };
print(length($s), "\n"); # 1
####
use Encode qw( encode );
my $s = do { use utf8; "高" };
print(length($s), "\n"); # 1
open my $fh, '>:utf8', \$s2;
print $fh $s;
print(length($s2), "\n"); # 3
$s2 = encode('utf8', $s);
print(length($s2), "\n"); # 3
####
use strict;
use warnings;
use utf8;
use Encode qw( decode );
my $chars_src = "采样速率太高";
my $bytes_dst;
{
open my $fh, '>:utf8', \$bytes_dst;
print $fh $chars_src;
}
my $chars_dst = decode('utf8', $bytes_dst);
binmode(STDOUT, ':utf8');
print("$chars_src\n");
print("$chars_dst\n");
####
...
my $bytes_src = encode('utf8', $chars_src);
print("$bytes_src\n");
print("$bytes_dst\n");
####
...
binmode(STDOUT, ':utf8');
print("$chars_src\n");
binmode(STDOUT, ':bytes');
print("$bytes_dst\n");