kaFFa fORest

kaffa's blog

关于文本二维码这件小事

文本二维码

简单讲,二维码是一个算法,可以把信息编码为0和1,也就是白和黑,也就是常见的二维码。大多情况下,二维码用一个方形的图片表达,可以跨各种介质传播。

但由于一个很特殊的软件,我们有将二维码从远程机器传递到本地文本终端的需求。因此,引出了文本二维码这个议题:

▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
█ ▄▄▄▄▄ █▀▄█▀ █▀ █▀█▄▀█ ▄▄▄▄▄ █
█ █   █ █▄   ▄▀ ▀▄▄█▀▀█ █   █ █
█ █▄▄▄█ █ ▀█▀█▄█▀   ▀▀█ █▄▄▄█ █
█▄▄▄▄▄▄▄█ ▀▄█ █ ▀▄▀▄▀ █▄▄▄▄▄▄▄█
█▄▄█▄▀▀▄▄▀█ ▀█▀ ▀ ▀█▄█▀ ▄▄▀▄▄▀█
█ ▀▀▀▄▀▄ █▄▄██ ██ ▄ ▄▄  ▄ ▄  ██
█▄ ▄███▄███▀▀ █▀▀█▄█  ▀▄██▄█▄▄█
██▄▄ ▄█▄ ▄▀██ ▀▀█ ▀▀▀▄ ▀██ ▄ ▄█
█▄▀▀▄▄ ▄▄▄ ▀▄██▄█▄ ██▄▄▀▀█▀█▄▀█
█▄█▄▀▀ ▄▀▄█▄▀██▀█▄▀▀█▄▄▄▄▀██  █
█▄██▄▄▄▄█  ▀  ▄▀█ █▄▄ ▄▄▄ █ ▀▀█
█ ▄▄▄▄▄ █▄█▄   █▀▀▄▀█ █▄█ ▀▀ ▀█
█ █   █ █▀▄▄ █▀▄█▀▄█▀▄▄   ▀▀▀██
█ █▄▄▄█ █▀ █ █▄▄█▀ █▀ ██▀▄▄▄▀▄█
█▄▄▄▄▄▄▄█▄█▄█▄▄█▄█▄▄█▄▄█▄█▄█▄██

上述即一个文本二维码,通常两行一列编码为一个半角字符,这个二维码的显示需要两个前提:

  1. 等宽字符,例如 Lucida Console
  2. 行间距尽量小,让整体显示为正方形

当然,能否扫描出结果,也取决于扫描时的容差。

在 Windows 平台,如果终端控制台中出现文本二维码散乱情况,请调整控制台字体为等宽字体,或者打开记事本,字体选择为:Lucida Console 5号字,再进行全选,即可显示出可扫描的二维码。