錨點、區域、確定性解碼
容器由固定標頭、manifest 與一連串可獨立回復的區塊組成。每個區塊記錄 codec、codec 版本、字典識別、字典雜湊、位移與校驗值 —— 足以讓一個從未見過編碼端的解碼器完成工作。
四個層次
Unicode
語義層
Scalar value。字元本身的身份。
UTF-8
錨點層
所有表示都必須能返回的規範性、可驗證形式。
UTF-8X
區域表示層
逐區塊、依成本而非慣例選擇的可逆表示。
Task
執行層
儲存、網路、搜尋、編輯器、模型推論 —— 各有各的權重。
逐區塊的候選 codec
調度器依成本函數逐區塊選擇,而「選擇原始 UTF-8」是合法答案。UTF-8X 的最差情況應該接近「多一個有限標頭的 UTF-8 容器」,而不是完全不可讀。
raw
原始 UTF-8,逐字保留
ld1
高頻字元與詞組的局部字典與短碼
delta
相鄰 scalar 之間的碼點差分
brotli
通用壓縮,可搭配共享字典
zstd
透過系統 libzstd 的通用壓縮
兩種可逆性,絕不混為一談
語義往返要求輸入是格式良好的 UTF-8,並保證取回相同的 Unicode scalar 序列 —— 不執行任何未宣告的正規化、字形替換或異體字合併。
逐位元往返則在來源含有格式錯誤的 UTF-8、歷史非法位元組、檔案簽名或非文字區段時才需要。此時只保存語義並不足夠,必須加入原始位元組逃逸。
容器必須宣告自己處於哪一種模式。這是兩種不同的保證,格式不允許它們模糊。
不存在全域最佳表示
調度器最小化一個加權成本:編碼後大小、編碼時間、解碼時間、記憶體、隨機存取成本、標頭與字典開銷、相容性風險。歸檔任務加重大小;即時聊天加重解碼延遲與標頭成本;編輯器加重隨機存取。
正因為權重隨任務而異,沒有任何單一碼表能永久最佳。這就是「逐區域選擇」而非「宣告贏家」的理由。
已寫明的失效模式
- 字典投毒 —— 外部字典必須以雜湊識別,不能只靠名稱或路徑。
- 解壓縮資源耗盡 —— 容器必須在解碼前限制解碼長度與膨脹比。
- 狀態失同步 —— 線上演化的字典需要世代編號、checkpoint 與退回原始 UTF-8 的路徑。
- 內容側信道 —— 機密文字與攻擊者可控文字不得共用會影響長度的自適應字典。
- 對調度器的提示注入 —— 分析器輸出受 schema 約束並由確定性驗證器複查;文字永遠不被當成指令。