Как получить настоящий символьный код из смайлика в JavaScript? - PullRequest
3 голосов
/ 12 июля 2020

У меня есть, например, этот смайлик:

?

... и я хочу получить ваш код символа. я пробовал это:

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?

1 Ответ

6 голосов
/ 12 июля 2020

String.codePointAt() и String.fromCodePoint() созданы для этого, хотя также можно указать UTF-16 charCode в устаревших браузерах, используя суррогатные пары ключей (см. Обсуждение здесь ).

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!
);
...