Unicode相关概念
参考博客
代码实现
/**
* 转换对照表
* U+00000000 – U+0000007F 0xxxxxxx
* U+00000080 – U+000007FF 110xxxxx 10xxxxxx
* U+00000800 – U+0000FFFF 1110xxxx 10xxxxxx 10xxxxxx
* U+00010000 – U+0010FFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
**/
// '严'的Unicode编码为:0x4E25,它介于U+00000800 – U+0000FFFF之间,所以它占用三个字节。
var ucode,
byte1,
byte2,
byte3,
u8code;
ucode = 0x4E25;
byte3 = 0x80 | (ucode & 0x3F);
byte2 = 0x80 | ((ucode >> 6) & 0x3F);
byte1 = 0xE0 | ((ucode >> 12) & 0x0F);
u8code = byte1.toString(16).toUpperCase() + byte2.toString(16).toUpperCase() + byte3.toString(16).toUpperCase();
console.log(u8code);