【问题标题】:How to Make Perl Properly Interpret Unicode Bytes?如何使 Perl 正确解释 Unicode 字节?
【发布时间】:2012-02-15 09:38:28
【问题描述】:

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

ブラック
roler coaster
digital social party
big bellie
cornacopia
\xd0\xb7\xd1\x83\xd0\xb1\xd0\xbd\xd0\xb0\xd1\x8f \xd1\x89\xd0\xb5\xd1\x82\xd0\xba\xd0\xb0

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

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

一个小时以来,我一直在思考如何在 Perl 中执行此操作,但我没有好主意。如果你有的话,我很想听听。

【问题讨论】:

标签: perl unicode utf-8


【解决方案1】:

它是 UTF-8

$ perl -E'
    use open ":std", ":locale";
    use Encode qw( decode );
    $_ = q{\xd0\xb7\xd1\x83\xd0\xb1\xd0\xbd\xd0\xb0\xd1\x8f }.
         q{\xd1\x89\xd0\xb5\xd1\x82\xd0\xba\xd0\xb0};
    s/\\x(..)/chr hex $1/seg;
    $_ = decode("UTF-8", $_);
    say;
'
зубная щетка

【讨论】:

    猜你喜欢
    • 2017-09-09
    • 1970-01-01
    • 2011-04-14
    • 1970-01-01
    • 2014-12-05
    • 2017-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多