用两个unicode码表示一个字符是什么原理

用两个unicode码表示一个字符是什么原理

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
卡布琦诺 2019-08-09 11:59:17

ES6为了增强对unicode 编码的支持,增加了一个方法codePointAt(),它直接返回的是字符的码点,该方法接受一个参数(代码单元的位置),返回一个整数,需要注意的是:在原来代码单元0的位置上,获取到的是整个字符的码点值,举个例子:

let text1 = "?";
console.log(text1.codePointAt(0)); //134071 > 65535(16进制0xFFFF)

只要它的码点值大于65535(16进制0xFFFF)就是多余2个字节,计算机中规定,超出\u0000~\uFFFF之间范围的字符,必须用两个双字节(两个unicode码)的形式表示

可以使用如下方式检测是否需要使用两个双字节表示

function twomore(char) {
   return char.codePointAt(0) > 0xFFFF;
}
console.log(twomore('?')) //true

返回true则证明是大于0xFFFF,需要使用两个双字节表示

希望可以帮到你!

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师