字符集含義:一個(gè)由整數(shù)向現(xiàn)實(shí)世界中文字的符號(hào)的Map
常見的字符集
- ASCII:128字符缤言,1字節(jié)
- ISO-8859-1:對(duì)ASCII進(jìn)行擴(kuò)充单绑,1字節(jié)
- GBK:中國(guó)自研標(biāo)準(zhǔn)呆奕,多字節(jié)埋嵌,字符集+編碼
- Unicode:13萬(wàn)個(gè)字符,多字節(jié)
- UTF-8:Unicode編碼的分支
- UTF-16:Unicode編碼的分支
我們常使用使用的就是Unicode字符集钢坦,
在Unicode中,碼位的總范圍為0x0000到0x10FFFF
有幾個(gè)概念是了解字符集以及它的編碼必備知識(shí)
- 碼點(diǎn)(code point)啥酱, 在Unicode中爹凹,對(duì)于每一個(gè)字符編碼的值,叫做code point
就是我們查Unicode編碼表得到的 例如 ‘明’字 的碼點(diǎn)是0x660e - 基礎(chǔ)多語(yǔ)言平面(Basic Multilingual Plane) 就是范圍在0x0000 - 0xFFFF 兩個(gè)字節(jié)
- 代碼單元(code unit):能表示一個(gè)單元的編碼文本的最小位的組合
編碼方式
UTF-32 :32bit 4字節(jié)1個(gè)code unit 就能表示所有字符
UTF-16 :16bit镶殷,變長(zhǎng) 2個(gè)字節(jié) 或4個(gè)字結(jié) 表示一個(gè)字符禾酱,大于0xFFFF的通過高低代理表示 所以需要1個(gè)code unit-2個(gè)codeunit
UTF-8 :8bit ,變長(zhǎng) 1-4個(gè)字節(jié)表示一個(gè)字符绘趋,通過不同區(qū)間添加不同前綴颤陶。
詳見下面鏈接
Unicode 字符集與字符編碼
Unicode字符集與編碼