用3个字符表示2字节二进制数据
把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?或者由网友们给起一个好听的名字。