如何从 JavaScript 中的表情符号中获取真正的字符代码?

How get real char code from an emoji in JavaScript?

例如,我有这个表情符号:


...我想获取您的字符代码。我试过这个:

var emoji = ""
var char_code = emoji.charCodeAt()
console.log(emoji,char_code)

但是当使用String的fromCharCode方法时,我没有得到原始的表情符号:

var emoji = ""
var char_code = emoji.charCodeAt()
var original = String.fromCharCode(char_code)
console.log(original)

如何从您的字符代码中获取原始表情符号?或者我怎样才能让你的实际字符代码在 String.fromCharCode?

中使用它

String.codePointAt()String.fromCodePoint() 就是为此而设计的,尽管也可以在旧版浏览器中使用 surrogate keypairs (see the discussion here).[= 指定 UTF-16 charCode。 15=]

let emoji = "",
    charCode = emoji.charCodeAt(),
    codePoint = emoji.codePointAt();

console.log(
    'charCode:', charCode,
    String.fromCharCode(charCode)   // doesn't work =(
)

console.log(
    'codePoint:', codePoint,
    String.fromCodePoint(codePoint) // there we go!
);