unicode 转 utf16

该代码定义了一个名为toUtf16的函数,用于将文本转换为UTF-16编码。它首先检查单字符情况,然后利用codePointAt方法获取Unicode码点,通过计算高位和低位字节来构造UTF-16编码的16进制表示。
摘要由CSDN通过智能技术生成
 1 function toUtf16(text) {
 2   if (text.length === 1) return text.charCodeAt(0).toString(16);
 3   const point = text.codePointAt(0);
 4   const highBits = 0xd800,
 5     lowBits = 0xdc00,
 6     bmp = 0x10000;
 7   const rest = (point - bmp).toString(2),
 8     restHighBits = +("0b" + rest.slice(0, -10)),
 9     restLowBits = +("0b" + rest.slice(-10));
10   const _char0Hex = (highBits + restHighBits).toString(16),
11     _char1Hex = (lowBits + restLowBits).toString(16);
12 
13   return _char0Hex + _char1Hex;
14 }
15 
16 export default toUtf16;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值