博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
前端日拱一卒D6——字符编码与浏览器解析
阅读量:5778 次
发布时间:2019-06-18

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

前言

余为前端菜鸟,感姿势水平匮乏,难观前端之大局。遂决定循前端知识之脉络,以兴趣为引,辅以几分坚持,望于己能解惑致知、于同道能助力一二,岂不美哉。

本系列代码及文档均在

字符编码

ASCII码

  • 一个字节,占用后7位,128个字符,对应关系可查表

Unicode字符集

  • 一个旨在包含全世界所有字符的集合
  • Unicode字符集为每个字符定义了一个码点,Unicode分区定义,其中码点ox0000 - oxFFFF 对应为基本平面(1个),码点ox010000 - ox10FFFF 为辅助平面(16个)。
  • 每个平面最多可存放2^16个字符

UTF-32 UTF-8 UTF-16

  • Unicode只定义了字符->码点的映射,并没有说明如何储存字符,字节序涉及到具体编码方法。
  • UTF-32是用4字节(32位,8个16进制位)来表示一个字符,可以做到一一对应所有Unicode码位,但显然这样很浪费空间

为什么是四字节不是三字节?算上所有平面也就最多到10FFFF,24位,按理说三字节就够了。

  • UTF-8是一种变长的编码方式,从1-4字节不等
  • UTF-16
    • 基础平面字符用两个字节表示,辅助平面用四个字节
    • 辅助平面有最多16 * 2^16 = 2^20次个字符,对应到20个二进制位,则将其分成两部分,前10位映射在U+D800到U+DBFF,后10位映射在U+DC00到U+DFFF

JavaScript使用的编码

  • USC-2

    • UTF-16晚于js诞生...所以当时选用了USC-2,后来这东西被UTF-16取代了
    • UCS-2使用两个字节来对应码点和表示字符,导致四字节的字符会被当做两个两字节字符处理,导致字符操作函数返回结果可能不对
  • ES6

    • 码点表示:2字节\u597D, 4字节\u{1D306}
    • 其他改进:兴趣不大...略过

HTML解析器

待补充

虽发表于此,却毕竟为一人之言,又是每日学有所得之笔记,内容未必详实,看官老爷们还望海涵。

转载地址:http://kpuyx.baihongyu.com/

你可能感兴趣的文章
标准与扩展ACL 、 命名ACL 、 总结和答疑
查看>>
使用@media实现IE hack的方法
查看>>
oracle体系结构
查看>>
使用CocoaPods过程中的几个问题
查看>>
机房带宽暴涨问题分析及解决方法
查看>>
XP 安装ORACLE
查看>>
八、 vSphere 6.7 U1(八):分布式交换机配置(vMotion迁移网段)
查看>>
php5编译安装常见错误和解决办法集锦
查看>>
ORACLE配置,修改tnsnames.ora文件实例
查看>>
Workstation服务无法启动导致无法访问文件服务器
查看>>
我的友情链接
查看>>
JS中比较数字大小
查看>>
jQuery插件的开发
查看>>
基础,基础,还是基础之JAVA基础
查看>>
如何成为一个C++高级程序员
查看>>
我的友情链接
查看>>
显式锁(第十三章)
查看>>
看linux书籍做的一些重要笔记(2011.07.03更新)
查看>>
从案例学RxAndroid开发(上)
查看>>
Redis学习手册(内存优化)
查看>>