将 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))
});
我正在使用 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))
});