GitHub@orca-j35,所有筆記均託管於 python_notes 倉庫
歡迎任何形式的轉載,但請務必註明出處。我會寫 5 篇文章來介紹 Unicode 字符編碼模型(CHARACTER ENCODING MODEL)
本文會簡要介紹一下模型的層次結構,並逐一列出相關的參考的資料
Unicode 字符編碼模型分為四個層級(level),概況如下:
- ACR: Abstract Character Repertoire 抽象字符庫
要編碼(encoded)的字符集,比如:某些字母或符號集
- CCS: Coded Character Set 編碼字符集
從抽象字符庫到到一組非負整數的映射
- CEF: Character Encoding Form 字符編碼模式
從一組非負整數到一組特定代碼單元序列的映射,其中的非負整數應是 CCS 中元素,代碼單元也應擁有指定寬度,如 32-bit 整數。
- CES: Character Encoding Scheme 字符編碼方案
從代碼單元序列到 8-bits 字節序列的可逆轉換。如果允許的話,會包含字節順序標記(byte order mark - BOM)。
將編碼模型分為四個層級的目的是:創建一組可以通過各種編碼模式編碼的通用字符集,也就是説,同一字符集可以對應多種編碼方式。
除了以上四個層級外,另外還有兩個有用的概念:
- CM: Character Map 字符映射
這一概念將上述四個層級打包到一個操作中,包含從"抽象字符庫成員序列"到字節序列的全部過程。
- TES: Transfer Encoding Syntax 傳輸編碼語法
應用於文本和其它編碼數據的可逆轉換,數據需要經過轉換後才允許被傳輸,例如 Base64 和 uuencode。
參考
有關"字符編碼模型"的筆記參考瞭如下內容:
- Character encoding - Wikipedia
- UNICODE CHARACTER ENCODING MODEL - Unicode 報告
- Glossary of Unicode Terms - Unicode 官方術語表
- 分享一下我所瞭解的字符編碼知識
- 理解字符編碼
- Character set encoding basics
- 刨根究底字符編碼之一——關鍵術語解釋(上)
- 編碼字符集與字符集編碼的區別
- Unicode 及編碼方式概述
- UTF-8, UTF-16, UTF-32 & BOM - 官方常見問題
- UTF-16 From Wikipedia
- Unicode From Wikipedia
- Byte order mark From Wikipedia
- Code point From Wikipedia
字符屬性
想要獲取關於字符屬性的信息,可閲讀如下內容:
-
5 Properties - UNICODE CHARACTER DATABASE,主要關注以下部分
- Table 7. Property Index by Scope of Use
- Table 12. General_Category Values
- 4.2. Categories - Programming with Unicode
- General Category from Wikipedia
- Unicode Character Categories
- https://www.compart.com/en/un... - 介紹 Unicode 知識的網站
- UnicodeData.txt 解釋了 UincodeData.txt 中各個字段的含義
- https://unicode-table.com/cn/...
擴展閲讀
- 【字符編碼】徹底理解字符編碼
- 多文化支持的代碼集
- 談談Unicode編碼,簡要解釋UCS、UTF、BMP、BOM等名詞
- "The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets"
- 6.5.
unicodedata— Unicode Database - Python Unicode Howto
- Pragmatic Unicode talk by Nat Batchelder
書籍和網站
- Programming with Unicode- 介紹 Unicode 的書
- https://www.compart.com/en/un... - 介紹 Unicode 知識的網站 ⭐
- http://www.fileformat.info/in... - 介紹 Unicode 知識的網站