对于什么可以成为 ZWJ 序列的一部分以及什么不能成为 ZWJ 序列的一部分,存在一些限制。Unicode 技术标准 #51规定了这些规则。
\n\n根据定义ED-15a,一个格式良好的 ZWJ 序列只能包含:
\n\nEmoji=True)Emoji_Modifier_Base=True后跟具有 属性的字符Emoji_Modifier=True)所有相关属性都可以在此数据文件中找到。
\n\nU+2605 BLACK STAR 不是表情符号字符(而且它显然也不是这些类型的序列之一),因此截至撰写本文时它在 ZWJ 序列中使用无效,但您可以替换 U+2B50白色中星(这是一个表情符号)。除此之外,\xef\xb8\x8f 和 都是公平的游戏。
\n\n关于 U+1F3F3 WAVING WHITE FLAG 的旁注:该字符是一个表情符号,但它具有属性Emoji_Presentation=False,这意味着它默认显示为文本样式(单色而不是彩色)。要强制显示表情符号样式,必须附加 U+FE0F VARIATION SELECTOR-16。建议对于字符 where 始终包含这些变体选择器Emoji_Presentation=False。
U+2B50 WHITE MEDIUM STAR 也是此类表情符号呈现序列的有效基础,但Emoji_Presentation=True默认情况下是这样,因此变体选择器完全是可选的。同时,U+1F7E9 LARGE GREEN SQUARE 不是表情符号呈现序列的有效基础,因此绝不能跟在 VARIATION SELECTOR-16 之后。我知道,它\xe2\x80\x99s很复杂。
这一切意味着您对于要使用的精确代码点序列有两种选择,这两种选择同样有效。任何一个:
\n\n\xef\xb8\x8f\xe2\x80\x8d\xe2\xad\x90\xe2\x80\x8d<U+1F3F3, U+FE0F, U+200D, U+2B50, U+200D, U+1F7E9>
或者:
\n\n\xef\xb8\x8f\xe2\x80\x8d\xe2\xad\x90\xef\xb8\x8f\xe2\x80\x8d<U+1F3F3, U+FE0F, U+200D, U+2B50, U+FE0F, U+200D, U+1F7E9>