为什么解析这些代码点会导致多个字符

时间:2018-08-27 11:06:19

标签: javascript json parsing

当我解析此内容时:

JSON.parse('"\\u1f469\\u200d\\u1f469\\u200d\\u1f466"')

我最终遇到多个字符:

὆9‍὆9‍὆6

但是当我解析它时:

JSON.parse('"\\uD83D\\uDC69\\u200D\\u2764\\uFE0F\\u200D\\uD83D\\uDC69"')

它产生‍❤️‍。两者都在chrome上运行。第一个是有效的零宽度连接表情符号。为什么第一个不产生组合的表情符号字符?

1 个答案:

答案 0 :(得分:0)

表情符号是由'U'之后的4个字符创建的。在您询问的示例中,您有5个字符,因此表情符号是从前4个(1f46)创建的,而第5个(9,9,6)被视为普通字符。

JSON.parse('"\\u1f469"') // => \\u1f46 = ὆, 9 = 9