博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JS中的unicode
阅读量:4842 次
发布时间:2019-06-11

本文共 714 字,大约阅读时间需要 2 分钟。

js采用UTF-16来对unicode进行编码,在FFFF及更小的unicode码中,UTF-16编码与unicode码是一模一样的,所以'\uxxxx'直接根据unicode原码表就能查出所需要的字符,无需转换编码。

当unicode码大于FFFF时,utf-16就会引进标志位,用四个字节表示unicode编码,此时UTF-16编码就与我们查到的原unicode码完全不一样了。

而ES6中,可以使用'/u{xxxxx}' 直接根据unicode码,输出对应字符,无需转化成utf-16:

"\u{20BB7}"// "?"

上述字符,在ES6之前,只能通过转换utf-16来输出:

'\uD842\uDFB7'//"?"

 

补充:

charCodeAt()得到的是utf-16的编码的十进制数,并不是unicode编码,这一点很多文档都写错了

utf-8是可变长的,兼容ascii码,小于等于1字节时等同于unicode码,大于1字节时会有标志位,也就不同于unicode码

 

附:

编码以16位无符号整数为单位。我们把Unicode
编码记作U。编码规则如下:
如果U<0x10000,U的UTF-16编码就是U对应的16位无符号整数(为书写简便,下文将16位无符号整数记作WORD)。
如果U≥0x10000,我们先计算U'=U-0x10000,然后将U'写成二进制形式:yyyy yyyy yyxx xxxx xxxx,U的UTF-16编码(二进制)就是:110110yyyyyyyyyy 110111xxxxxxxxxx

 

转载于:https://www.cnblogs.com/jx-z/p/10451318.html

你可能感兴趣的文章
DAY-9 Linux基础及常用命令(5)
查看>>
unittest-mock-from-import
查看>>
node入门学习(二)
查看>>
通过js禁止输入空格(试用场景:当用字符串拼接插入dom节点时,onkeyup这些方法都不好使可用这个)...
查看>>
Codeforces Edu Round 48 A-D
查看>>
C++cctype软件包函数摆脱,ASCII码!
查看>>
saltstack笔记
查看>>
(转载)TP5_自定义分页样式
查看>>
Spring3.2 和 jdk8 运行时有冲突
查看>>
WordPress4.1新的函数介绍
查看>>
list<T> 排序
查看>>
结对2.03
查看>>
【vue】vue如何创建一个项目
查看>>
简单的linux压力测试工具webbench
查看>>
ImageLunBo_shape+XML
查看>>
php实现设计模式————单例模式
查看>>
Python OOP(面向对象编程)
查看>>
MySQL安装与测试
查看>>
使用JDK自带的VisualVM进行Java程序的性能分析
查看>>
mysql语句记录
查看>>