Unicode 表情符号的正确NFD形式及其比较

Unicode 表情符号的正确NFD形式及其比较,unicode,nfd,Unicode,Nfd,考虑到现在有些代码点的文本与表情显示有一个选择器,那么这些代码点的正确分解形式是什么?例如,❤︎ (U+2764)默认为文本表示,但如果后跟VS-16(U+fe0f),则可以成为表情符号:❤️. 可以使用VS-15(U+fe0e)强制文本表示。这是否意味着U+2764的NFD应该变成U+2764 U+fe0e?U+2764 U+fe0e和U+2764是否应被视为相同的(以同样的方式,é(U+00e9)与é(U+0065 U+0301)相同)?那么文本与表情符号的对比呢?它们也应该被同样对待吗?对

考虑到现在有些代码点的文本与表情显示有一个选择器,那么这些代码点的正确分解形式是什么?例如,❤︎ (U+2764)默认为文本表示,但如果后跟VS-16(U+fe0f),则可以成为表情符号:❤️. 可以使用VS-15(U+fe0e)强制文本表示。这是否意味着U+2764的NFD应该变成U+2764 U+fe0e?U+2764 U+fe0e和U+2764是否应被视为相同的(以同样的方式,é(U+00e9)与é(U+0065 U+0301)相同)?那么文本与表情符号的对比呢?它们也应该被同样对待吗?

对于表情符号和变体选择器,没有相应的规则。标准:

变体序列中的初始字符从来不是[…]标准可分解字符

这意味着在NFD下,带或不带变体选择器的表情符号不会改变

另外,据我所知,Unicode没有指定没有变体选择器的代码点的默认表示形式。这取决于实施。

有趣的是,❤︎ (U+2764)在Android上显示为表情符号,但在chrome的OSX上显示为文本。我想知道什么❤︎ (U+2764 U+fe0e)就可以了。仍然是表情符号,所以这是一个bug。