Unicode的UTF-8实现方式

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);

转载于:https://my.oschina.net/u/3643736/blog/1578053

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值