我正在构建一个应用程序来转换表情符号短名称(如:flag_cf:)并通过一系列操作将它们转换为十六进制代码点(这是地图中返回 Twitter 表情符号/twemoji 的键)。
我有一个实用程序(emojione.shortnameToUnicode())将短名称转换为本机 unicode 表情符号,但我在将本机 unicode 表情符号转换为十六进制代码点时遇到了麻烦。
我一直在使用:
const unicode = emojione.shortnameToUnicode(str);
const decCodepoint = unicode.codePointAt(0);
const hexCodepoint = decCodepoint.toString(16);
当生成的十六进制代码点是单个数字时,这可以正常工作。但是,表情符号之类的标志似乎有两个,例如:flag_cn:
is 1f1f9-1f1f7
。但是,我上面的过程只会返回第一个十六进制代码点(即1f1f9
)。