これを変換する方法????
これに1f600
in javascript
'????'.charCodeAt(0);
これはユニコード55357を返しますが、????から1f600を取得する方法
これをブラウザ側で変換するスクリプトを追加しました
function emojiUnicode (emoji) {
var comp;
if (emoji.length === 1) {
comp = emoji.charCodeAt(0);
}
comp = (
(emoji.charCodeAt(0) - 0xD800) * 0x400
+ (emoji.charCodeAt(1) - 0xDC00) + 0x10000
);
if (comp < 0) {
comp = emoji.charCodeAt(0);
}
return comp.toString("16");
};
emojiUnicode("????"); # result "1f600"
これは私が使用するものです:
const toUni = function (str) {
if (str.length < 4)
return str.codePointAt(0).toString(16);
return str.codePointAt(0).toString(16) + '-' + str.codePointAt(2).toString(16);
};
ここに別の方法があります。 ソース
"????".codePointAt(0).toString(16)
双方向
let hex = "????".codePointAt(0).toString(16)
let Emo = String.fromCodePoint("0x"+hex);
console.log(hex, Emo);
お読みください このリンク 。
ここに関数があります:
function toUTF16(codePoint) {
var TEN_BITS = parseInt('1111111111', 2);
function u(codeUnit) {
return '\\u'+codeUnit.toString(16).toUpperCase();
}
if (codePoint <= 0xFFFF) {
return u(codePoint);
}
codePoint -= 0x10000;
// Shift right to get to most significant 10 bits
var leadSurrogate = 0xD800 + (codePoint >> 10);
// Mask to get least significant 10 bits
var tailSurrogate = 0xDC00 + (codePoint & TEN_BITS);
return u(leadSurrogate) + u(tailSurrogate);
}