如何将肤色应用于 JavaScript 中的表情符号?
How do I apply a skin tone to an emoji in JavaScript?
鉴于此表情符号,我如何以编程方式在 JavaScript 中应用肤色?
笑脸是0x1F600
。
深肤色是 0x1F3FF
。
我是否只是将这些值连接在一起?
下面的代码,基于算法,仅仅打印出两个字符。
function units(codepoint) {
const tmp = codepoint - 0x10000
const padded = tmp.toString(2).padStart(20, '0')
const unit1 = Number.parseInt(padded.substr(0, 10), 2) + 0xD800;
const unit2 = Number.parseInt(padded.substr(10), 2) + 0xDC00;
return [unit1, unit2]
}
const face = units(0x1F600)
const tone = units(0x1F3FF)
const ch = String.fromCharCode(...face, ...tone)
console.log(ch) //
只有少数表情符号真正占据了肤色。例如,面部 - 男人和女人 facepalming:
function units(codepoint) {
const tmp = codepoint - 0x10000
const padded = tmp.toString(2).padStart(20, '0')
const unit1 = Number.parseInt(padded.substr(0, 10), 2) + 0xD800;
const unit2 = Number.parseInt(padded.substr(10), 2) + 0xDC00;
return [unit1, unit2]
}
const face = units(0x1F926)
const tone = units(0x1F3FF)
const ch = String.fromCharCode(...face, ...tone)
console.log(ch)
其他不支持颜色变体的是不可能的。在这里,在 Every Emoji by Codepoint 中,您可以找到 支持 Emoji 修改器 Fitzpatrick。
不支持修改器
支持修改器
鉴于此表情符号,我如何以编程方式在 JavaScript 中应用肤色?
笑脸是0x1F600
。
深肤色是 0x1F3FF
。
我是否只是将这些值连接在一起?
下面的代码,基于算法
function units(codepoint) {
const tmp = codepoint - 0x10000
const padded = tmp.toString(2).padStart(20, '0')
const unit1 = Number.parseInt(padded.substr(0, 10), 2) + 0xD800;
const unit2 = Number.parseInt(padded.substr(10), 2) + 0xDC00;
return [unit1, unit2]
}
const face = units(0x1F600)
const tone = units(0x1F3FF)
const ch = String.fromCharCode(...face, ...tone)
console.log(ch) //
只有少数表情符号真正占据了肤色。例如,面部 - 男人和女人 facepalming:
function units(codepoint) {
const tmp = codepoint - 0x10000
const padded = tmp.toString(2).padStart(20, '0')
const unit1 = Number.parseInt(padded.substr(0, 10), 2) + 0xD800;
const unit2 = Number.parseInt(padded.substr(10), 2) + 0xDC00;
return [unit1, unit2]
}
const face = units(0x1F926)
const tone = units(0x1F3FF)
const ch = String.fromCharCode(...face, ...tone)
console.log(ch)
其他不支持颜色变体的是不可能的。在这里,在 Every Emoji by Codepoint 中,您可以找到 支持 Emoji 修改器 Fitzpatrick。
不支持修改器
支持修改器