什么是e6 b5 8b e8 af 95的编码

jsh*_*303 -3 unicode perl encoding

我有一个包含字节序列的文本数据源e6 b5 8b e8 af 95.在这种情况下,我认为它应该是汉字"测试".

我的perl源代码应该接收这个字节序列(不幸的是,这不是UTF-8,我不能将它编码为UTF-8并解码回来),但在某些情况下序列变为c3 a6 c2 b5 c2 8b c3 a8 c2 af c2 95.

试图找出可能的原因c3c2添加.这是类似问题中提到的双重转换问题吗?

ike*_*ami 7

06d4b 08bd5是Unicode代码点??.

b5 8b e8 af 95是UTF-8编码??.

c3 a6 c2 b5 c2 8b c3 a8 c2 af c2 95是UTF-8编码的UTF-8编码??.

$ perl -e'
    use strict;
    use warnings;
    use utf8;
    use open ":std", ":encoding(UTF-8)";

    my $s = "??";
    print "$s\n";
    printf "%v05X\n", $s;

    utf8::encode($s);
    printf "%v02X\n", $s;

    utf8::encode($s);
    printf "%v02X\n", $s;
'
??
06D4B.08BD5
E6.B5.8B.E8.AF.95
C3.A6.C2.B5.C2.8B.C3.A8.C2.AF.C2.95
Run Code Online (Sandbox Code Playgroud)
$ perl -MJSON -e'
    use strict;
    use warnings;
    use utf8;
    use open ":std", ":encoding(UTF-8)";

    my $s = "??";
    printf "%1\$s (%1\$v05X)\n", $s;
    my $data = [ $s ];
    my $json_utf8 = JSON->new->utf8->encode($data);
    printf "%v02X\n", $json_utf8;
    $data = JSON->new->utf8->decode($json_utf8);
    $s = $data->[0];
    printf "%1\$s (%1\$v05X)\n", $s;
'
?? (06D4B.08BD5)
5B.22.E6.B5.8B.E8.AF.95.22.5D
?? (06D4B.08BD5)
Run Code Online (Sandbox Code Playgroud)

  • 这一切都没有意义,评论也不是提出新问题的地方.你只是在重复[你早先无法回答的问题](/sf/ask/3205215541/).请解答该答案评论中提出的问题. (2认同)