将 unicode 转换为表情符号的正确方法

Correct way of converting unicode to emoji

我正在使用 String.formCodePoint 将 Unicode 转换为表情符号,但某些表情符号未按预期转换。它们显示为线条图标。请检查下面的示例,前两个表情符号正确呈现,但后两个不正确。

例如:

const unicode = ["1f976", "1f97a", "263a-fe0f", "2639"]


unicode.forEach((val) => {
  document.body.innerHTML += String.fromCodePoint(parseInt(val, 16))
});

结果:

您的代码不正确。

旧的表情符号默认不着色,因此您需要添加变体代码“fe0f”。你尝试了第三个(但没有尝试第四个),但是你错误地转换为数字,所以它会失败。

此代码将修复它(如果您安装了表情符号字体)。

const unicode = ["1f976", "1f97a", "263a", "fe0f", "2639", "fe0f"]


unicode.forEach((val) => {
  document.body.innerHTML += String.fromCodePoint(parseInt(val, 16))
});