Unicode 通用字元集
歷史
https://zh.wikipedia.org/wiki/Unicode
8bits ASCII => 0-127 共128字元
https://unicode-table.com/cn/blocks/basic-latin/
ISO 8859-1 國際標準化組織(ISO)及國際電工委員會(IEC)聯合制定 的字元 256字元
Unicode
16bits
32bits => 2^31 =>2,147,483,647字元
Unicode 表示方式
U+16進位數值(碼位code point)
ex. U+0061 => a
ex. U+1F606 => 😆
「基本平面」 (BMP, Basic Multilingual Plane)
Plane 0 U+0000 到 U+FFFF
「輔助平面」 SMP, Supplementary planes or Astral planes)(五或六個數字)
Plane 1-16 U+010000 到 U+10FFFF (1,112,064)
編碼方式 & 編碼單位(code units)
UTF-32 1個code unit
UTF-16 2個code units
UTF-8
ex. U+1F606 😆
UTF-8 Encoding: 0xF0 0x9F 0x98 0x86
UTF-16 Encoding: 0xD83D 0xDE06
UTF-32 Encoding: 0x0001F606
1 | const smile = '😆'; |
JS 內部處理方式為UTF16 code units
JS 外部處理方式
載入時可用charset指定編碼方式
建議釋出適用ASCII(7位元格式)
charset
1 | <meta charset="UTF-8"> |
Unicode字元特性
https://en.wikipedia.org/wiki/Unicode_character_property
Name 英文名稱
General Category 類目
Age 哪個版本
Deprecated 棄用
…其他特性
JS & Unicode
1 | const \u0061 = 'hi'; |
Unicode 通用字元集