把1字節二進制數據,用可打印字符表示,可用十六進制。這樣一來,1字節變2字節,2倍。
2字節的二進制數據,可以用3個字符來表示,1.5倍。
2562略小于413,65536<68921
需要準備41個符號
包括:
數字10個
小寫字母,去掉和0、1形似的,剩24個
大寫字母,選擇和小寫形式不同的7個
0123456789
abcdefghijkmnpqrstuvwxyz,沒有l和o
AEFGHQR
然后,把1字節和2字節結合起來:
256^2+256=65792
仍小于41^3=68921
所以,最終方案是,用3字符41進制,表示2字節或1字節二進制數據
0至65535表示2字節數據
65536至65791表示1字節數據,較少出現的情況用更大的數字表示
65792表示“開始”
65793表示“結束”
65794表示“未知的1字節”
剩余3126個碼位
舉例:
對“終止”進行編碼,它是65793,換成41進制是(39 5 29),換成字符是"Q5v"
總結:
本文的方案類似于base64,它是用4個字符表示3字節二進制數據,1.333倍。它不具備開始、結束、未知。推薦本文的方案,它可以叫base41?或者由網友們給起一個好聽的名字。