我有兴趣生成短代码(最多6个字符),这些代码对于人类的可读性是明确的:
即:2Z8B5S将是一个非常糟糕的代码,因为B看起来很像8和2看起来很像Z等.
一个好的代码就像是:AE37HT,比方说.
显然,我可以尝试自己解决这个问题,但我想看看是否有像NASA这样的人进行过任何研究.
如果您还有关于可读性如何受到颜色,字体,大小和观看距离影响的任何参考(我正在寻找距离大约6英尺的一英寸高的东西),这也会有所帮助.在显示器上或可能在印刷品上.
我找到了这套指导方针,但它没有任何实证结果,我可以将其变成一个表来生成代码:
http://www.usabilitysciences.com/usability-of-codes-passwords-numbers-and-letters/
坦率地说,我认为最重要的因素是选择正确的字体.
如果您的目标纯粹是易读性,那么选择一种优选的字体是一个问题:
1)固定宽度.对于挑选随机数字/字母,固定宽度有很大帮助,因为当您在字体上移动时字距调整不会改变.
2)使用具有单独0/O外观的字体 - 这些肯定让人感到困惑.寻找相似的其他字母/数字组合.由于这个原因,可能会将0/O从混合物中取出.
3)选择具有微妙衬线和重量变化的字体.
有关易读性的一些准则,请参阅此页面.
使用正确的字体,我认为您可以选择任何字母/数字组合并使其清晰可辨(除了潜在的0和O).我相信8/B,5/S和其他样本将以正确的字体清晰显示.
您可以考虑的另一件事是使用一种颜色作为字母而另一种颜色使用 - 这将为潜在的数字/字母组合提供线索.不过,我认为这是一个微妙的暗示,因为剧烈的颜色变化会引起人们对字母或数字的注意,这会影响整体的可读性.
阅读评论后编辑另一个答案:
我只需要几千个代码,所以我并不十分担心域名的大小
如果是这种情况,我建议保留整个数字集,并选择性地添加没有视觉(或听觉,如果你正在阅读这些)与数字相似的字母.使用6位数字,即使有数字,您拥有的代码可能性超出了您的需求.选择性地添加字母以帮助区分将比尝试选择性地删除一些更容易.我可能会坚持使用1-9,A,Z,R,W和其他与数字不匹配的字母.
如果你不想担心字体.这是我编制的清单(不包括小写字母):
'0' can look like a 'O'
'1' can look like a 'l'
'2' can look like a 'Z'
'5' can look like a 'S'
'8' can look like a 'B'
'B' can look like a '8'
'I' can look like a '1'
'J' can look like a '1'
'L' can look like a '1'
'O' can look like a '0'
'S' can look like a '5'
'T' can look like a '1'
'Z' can look like a '2'
Run Code Online (Sandbox Code Playgroud)