说起baseXX编码,比较常见的是base64。在微博博文的url中是先分段再做base62。在比特币地址中用的是Base58,去掉了难辨认易混淆的几个字符。
而这个XX意思就是编码后字符集的大小。那有没有base256呢?这样正好一个Byte编码成一个字符。RFC没有这个标准,可能是因为标准的ASCII只定义了128个字符,凑不齐256个字符。
也就是说,只要能定义出一套拥有256个字符的字符集,就可以定义出一种Base256的编码方式。在Unicode规范中,Braille Patterns 区块我觉得蛮合适的。这是一套盲文符号,8个点正好对应256中情况。
编码出来的信息放在一行上就是 2m列 x 4行 的点阵形式,看起来很舒服。
这种编码方式肯定不是我第一个发现,应该已有不少工具支持这种编码。而且在 TUI 上也被玩出花了。但我还是决定vibe一个出来玩玩,顺便也可以用 Braille Patterns 来表示 SHA256 的散列结果。
传送门:dot.closeai.moe
测试后发现,0x00 对应的字符是“⠀”U+2800,这个字符相当于是空白的,但有些字体会显示错误。所以我打算用“ᕒ”(U+1552) 去代替U+2800。
另外我还尝试用 Braille Patterns 去展示二维码,直接打印在终端确实扫不出来,不过更换字体、字间距和行间距后,能扫出来的成功率提升了不少。
⡤⠤⠤⡄⢠⠀⢤⣤⡀⡠⠀⡤⠤⠤⡄
⡇⠿⠇⡇⣿⡺⡎⠺⢔⡣⡃⡇⠿⠇⡇
⡍⢭⡭⢅⠓⠑⣁⣃⠧⢗⢇⣭⡭⠍⡁
⠼⡳⠒⢍⡫⢂⡚⢽⣩⢵⢣⣃⡲⠔⡀
⡯⢷⣒⢥⠜⢏⣆⣂⠦⢅⣗⣋⡩⡕⡀
⠇⠘⠴⠝⣌⡅⡚⢽⡩⠶⡯⠾⣇⣵⡄
⡏⣭⡍⡇⣦⣮⡂⣂⢢⢌⠧⠥⢏⡕⠆
⠧⠭⠥⠇⠵⠻⠗⠜⠥⠯⠋⠿⠽⠝
