为什么两个相同的表情符号不相等



我必须验证用户的表情符号输入,并进行比较以查看他们输入了什么。然而,我开始注意到,有几个表情符号看起来一模一样,但并不相等。看看下面的例子,moonA的长度是2,但moonB是3:

var moonA = "🌕";
var moonB = "🌕️";
console.log(moonA == moonB);
console.log("Moon A:", moonA.length);
console.log("Moon B:", moonB.length);

造成这种差异的原因是什么?我在Windows和iOS中都仔细查看了它们,它们在两个系统上看起来完全一样。为什么同一个表情符号有两个版本?

这是什么Unicode字符?将它们标识为:

moonA = "🌕"
U+1F315 : FULL MOON SYMBOL
moonB = "🌕️"
U+1F315 : FULL MOON SYMBOL
U+FE0F : VARIATION SELECTOR-16 [VS16] {emoji variation selector}

最新更新