logologo
  • WebUI
  • JavaScript
  • TypeScript
  • C++
  • ··
    • C
    • Rust
    • Python
    • Cangjie
    • SQL
    • Design
    概述
    常见的数据结构
    ecmascript相关
    enumerable
    Object 内部实现
    sameValue 算法
    unicode
    语法设计
    声明
    表达式
    模块
    语句
    严格模式
    类型系统
    Array
    typedArray
    Map
    Number
    Object
    Set
    String
    结构化
    基本的组织元素
    动态性
    并发性
    范式
    函数式
    函数的行为
    闭包
    函数
    从运算式语言到函数式语言
    语言的多范式

    Last Updated: 9/30/2025, 3:44:10 AM

    Previous pagesameValue 算法Next page语法设计

    #码表

    Unicode:定义了字符的代码点(code point 字符码点,每个字符都有一个唯一的标识符),但并未定义字符序列如何存储和传输。它是通用的文本字符集,可以在任何系统上无缝地使用。

    码点(code point)和码元(code unit)的区别:

    码点表示 Unicode 表的键,是唯一的。既可以是基本平面的,也可以是辅助平面的。

    • 基本平面(Basic Multilingual Plane,简称 BMP 或 plane 0):编码范围为[U+0000,U+FFFF],共占据65536(16**4)个字符。包含了大多数常用的字符。
    • 增补平面(Supplementary Planes,也叫辅助平面, plan 1-...):编码范围为[U+10000,U+FFFFF],每个辅助平面包含 16**4 个字符(和BMP一样),最多 15 个辅助平面。

    码元即编码元素,在不同的上下文中的含义不同。

    • 基本平面的字符,使用一个码元来表示
    • 辅助平面的字符需要使用代理对(surrogate pair)来表示,即两个16进制位的码元

    #编码

    UTF(Unicode Transformation Formats): 它定义了 Unicode 代码点转换为字节序列的编码规则.

    • UTF-8:可变长度的编码方式,使用 1 到 4 个字节(1个字节8比特位)表示一个字符。它与 ASCII 编码兼容。因它对英文文本的存储效率较高,广泛用于网页和电子邮件。
    • UTF-16:使用 2 个或 4 个字节(16 位或 32 位)表示一个字符。它在处理某些亚洲语言(如中文、日文和韩文)时较为高效。
    • UTF-32:使用 4 个字节表示一个字符。这使得字符的处理变得简单,但体积大、存储和传输效率低。

    UCS-2

    • Unicode 早期标准,编码范围[U+0000,U+FFFF],和新的 Unicode 标准的基本平面完全一致。
    • 采用16bit编码,2个字节来表示一个字符。
    • javascript 默认的处理字符编码的方式。