Perl的length()函数如何计算Unicode字符?

时间:2018-11-05 08:17:25

标签: perl

为什么length()说这是4个逻辑字符(我希望它说1):

$ perl -lwe 'print length("")'
4

我想我的期望有问题。 :-)这是什么?

1 个答案:

答案 0 :(得分:11)

除非您告诉Perl该脚本的源代码位于utf8中,否则Perl假定使用ASCII。这意味着默认情况下,Perl解释器将File > Revert To > Browse All Versions..视为4个单独的字符。如果将一根衬纸更改为,则会看到长度提供了预期的输出。

utf8编译指示告诉Perl源单位是utf8,而不是ASCII。有关更多信息,请参见perl -Mutf8 -lwe 'print length("")'