Perl 6将如何处理新的组合表情符号长度?

时间:2016-09-20 13:47:03

标签: unicode emoji perl6

现在有些表情符号结合了。例如,U + 1f441()U + 200d(ZWJ)U + 1f5e8()组合成(I am a witness)。关于MoarVM 2016.07的Rakudo 2016.07.1说有两个字形:

> "\x[1f441]\x[200d]\x[1f5e8]".chars
2

我认为应该是1.它似乎与

有类似的问题
> "\x[1f441]\x[fe0f]\x[200d]\x[1f5e8]\x[fe0f]".chars
2

但至少它正确处理U + fe0f(VS-16,表情符号表示)。

是否有计划在更高版本的Perl 6中修复此问题,或者我误解了chars方法的意图?

1 个答案:

答案 0 :(得分:2)

您提到的ZWJ序列只是Unicode Emoji 4.0的一部分,它仍然处于草稿状态,并计划在November 2016中发布。在这个新版本下,U + 1F5E8具有Grapheme_Cluster_Break属性E_Base_GAZ (EBG),因此序列应该确实形成一个字形集群。

我确信Perl 6会在某个时候赶上。