UTF-16の求め方
1. 符号化したい文字の符号位置をnとする
= yyyy yyyyyyXX XXXXXXXX
= yyyyyyyyyy XXXXXXXXXX ... (10桁ずつに揃える、yを上位、Xを下位に使う)
code:js
function getUTF16ByteArray(word) {
const cp = word.codePointAt(0);
if (cp < 0x10000) {
} else if (0x10000 <= cp && cp <= 0x10FFFF) {
// サロゲートペア算出
lowSurrogate = 0xDC00 + ((cp - 0x10000) & 0b1111111111)
highSurrogate = 0xD800 + (((cp - 0x10000) >> 10 ) & 0b1111111111)
} else {
return [];
}
}
code:ㅤ
console.log(getUTF16ByteArray('𩸽').map(m => m.toString(16)))
関連