Pav*_*sov 2 perl utf-8 character-encoding
我utf8::encode
在使用pragma时遇到问题use open qw(:std :utf8);
例
#!/usr/bin/env perl
use v5.16;
use utf8;
use open qw(:std :utf8);
use Data::Dumper;
my $word = "+????";
say Dumper($word);
say utf8::is_utf8($word) ? 1 : 0;
utf8::encode($word);
say Dumper($word);
say utf8::is_utf8($word) ? 1 : 0;
Run Code Online (Sandbox Code Playgroud)
产量
$VAR1 = "+\x{431}\x{430}\x{43d}\x{43a}";
1
$VAR1 = '+банк';
0
Run Code Online (Sandbox Code Playgroud)
当我删除这个pragma use open qw(:std :utf8);
,一切都很好.
$VAR1 = "+\x{431}\x{430}\x{43d}\x{43a}";
1
$VAR1 = '+????';
0
Run Code Online (Sandbox Code Playgroud)
先谢谢你!
如果你要更换utf8::encode($word);
有use open qw(:std :utf8);
,你实际上需要删除utf8::encode($word);
.在不起作用的版本中,您进行了两次编码.