← 返回首页

盲文编码的趣味探索

发布时间: 2026-04-04 19:20(北京时间)

摘要: 作者探讨了基于盲文符号的Base256编码方案,将其作为baseXX编码的扩展,利用Unicode中的Braille Patterns区块实现,并讨论了实际应用中的字符显示问题和终端二维码展示的优化。整体语调技术性且带有实验性兴趣。

标签: 编码技术, 盲文符号, Unicode, 实验探索, 技术细节, 冷静

字数: 748

原文链接: /7402396589/QzgNk5Zod

说起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 去展示二维码,直接打印在终端确实扫不出来,不过更换字体、字间距和行间距后,能扫出来的成功率提升了不少。

⡤⠤⠤⡄⢠⠀⢤⣤⡀⡠⠀⡤⠤⠤⡄
⡇⠿⠇⡇⣿⡺⡎⠺⢔⡣⡃⡇⠿⠇⡇
⡍⢭⡭⢅⠓⠑⣁⣃⠧⢗⢇⣭⡭⠍⡁
⠼⡳⠒⢍⡫⢂⡚⢽⣩⢵⢣⣃⡲⠔⡀
⡯⢷⣒⢥⠜⢏⣆⣂⠦⢅⣗⣋⡩⡕⡀
⠇⠘⠴⠝⣌⡅⡚⢽⡩⠶⡯⠾⣇⣵⡄
⡏⣭⡍⡇⣦⣮⡂⣂⢢⢌⠧⠥⢏⡕⠆
⠧⠭⠥⠇⠵⠻⠗⠜⠥⠯⠋⠿⠽⠝

image