如何使Perl正确解释Unicode字节



我有一个非常糟糕的文件,里面装满了unicode字节,我正试图清理它。文件中的一些示例如下:

ブラック
roler coaster
digital social party
big bellie
cornacopia
xd0xb7xd1x83xd0xb1xd0xbdxd0xb0xd1x8f xd1x89xd0xb5xd1x82xd0xbaxd0xb0

现在,我想做的是将所有这些难看的字节点转换成真正的unicode文本。因此,以上内容将输出为:

ブラック
roler coaster
digital social party
big bellie
cornacopia
зубная щетка

一个小时以来,我一直在思考如何用Perl实现这一点,但我没有什么好主意。如果你有,我很想听。

它是UTF-8

$ perl -E'
    use open ":std", ":locale";
    use Encode qw( decode );
    $_ = q{xd0xb7xd1x83xd0xb1xd0xbdxd0xb0xd1x8f }.
         q{xd1x89xd0xb5xd1x82xd0xbaxd0xb0};
    s/\x(..)/chr hex $1/seg;
    $_ = decode("UTF-8", $_);
    say;
'
зубная щетка

最新更新