JS字符编码笔记

更详细的参考 大神阮一峰的文章

这里只是记下自己的一些理解

1. js的字符状况

js采用的是UCS-2编码[当然是unicode字符集],特点是一个字符只是两个字节,而不像UTF-16(2,4个字节都有),但字符的规则跟UTF-16一致,如下:
基本平面的字符占用2个字节,辅助平面的字符占用4个字节,即UTF-16的编码长度要么是2个字节(U+0000到U+FFFF),要么是4个字节(U+010000到U+10FFFF)。
其中基本字符中的 ** U+D800 到 U+DFFF ** 对应空符,即不对应任何基本字符,故这一段的编码就用来映射辅助字符,其中** 高位用 U+D800到U+DBFF 底位用 U+DC00 到 U+DF00 ** ,也就是字符串在识别字符串是会根据这个规则,是显示基本字符,还是再读取后两位去显示辅助字符。
高地位的公式

H = Math.floor((c-0x10000) / 0x400)+0xD800
L = (c - 0x10000) % 0x400 + 0xDC00

示例请看 阮一峰的文章的 第八条

2. es6的改进

更智能的支持的Unicode,比如遍历字符串,可以使用

for(let s of string) {}

获取length Array.from(strong).length
反斜杠+u+码点 改为反斜杠+u+{+码点+}
添加了几个方法Array.fromCodePoint(), Array.prototype.codePointAt, Array.prototype.at ,正则式u的支持,normalize方法的支持

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 字符集和编码简介 在编程中常常可以见到各种字符集和编码,包括ASCII,MBCS,Unicode等字符集。确切的说...
    兰山小亭阅读 8,678评论 0 13
  • 来源:酷勤网 一、Unicode是什么?Unicode源于一个很简单的想法:将全世界所有的字符包含在一个集合里,计...
    木木口丁阅读 850评论 0 0
  • 最近在看书的时候突然纠结于Unicode相关字符编码,查了一些资料,并写了这篇文章,顺带做下笔记,希望能帮到一些人...
    tingxins阅读 3,743评论 5 19
  • 《Getting Real》这本书有点意思,是37 signals团队的作品,作者以简洁有力的风格,阐释了如何打造...
    虎尾兰守望者阅读 1,378评论 1 3
  • 六月中旬了,和桂阳在一起快一年了。时间过得真的是很快,两百多个日日夜夜就这样悄无声息的度过了。拿起笔,这种为他写心...
    一口吃成了瘦子阅读 791评论 1 6