Fonts 你能推荐一些关于最不模棱两可的字母/数字的信息吗?

Fonts 你能推荐一些关于最不模棱两可的字母/数字的信息吗?,fonts,usability,Fonts,Usability,我对生成短代码(最多6个字符)感兴趣,这些代码对于人类可读性来说是明确的: i、 e:2Z8B5S将是一个非常糟糕的代码,因为B看起来很像8,2看起来很像Z,等等 一个好的代码应该是:AE37HT,比如说 很明显,我可以试着自己去弄清楚,但我想看看是否有像NASA之类的人进行过研究 如果你也有任何关于颜色、字体、大小和观看距离对可读性影响的参考资料(我看到的东西可能有一英寸高,距离大约6英尺),那也会很有帮助。在显示器上,也可能在打印中 我找到了这套指南,但没有任何实证结果,我可以将其转化为一个

我对生成短代码(最多6个字符)感兴趣,这些代码对于人类可读性来说是明确的:

i、 e:2Z8B5S将是一个非常糟糕的代码,因为B看起来很像8,2看起来很像Z,等等

一个好的代码应该是:AE37HT,比如说

很明显,我可以试着自己去弄清楚,但我想看看是否有像NASA之类的人进行过研究

如果你也有任何关于颜色、字体、大小和观看距离对可读性影响的参考资料(我看到的东西可能有一英寸高,距离大约6英尺),那也会很有帮助。在显示器上,也可能在打印中

我找到了这套指南,但没有任何实证结果,我可以将其转化为一个表格来生成代码:


坦率地说,我认为最重要的因素是选择正确的字体

如果你的目标是纯粹的易读性,那么你需要选择一种字体,最好是:

1) 固定宽度。对于挑选随机数字/字母,固定宽度非常有帮助,因为字距不会随着字体的移动而改变

2) 使用具有单独0/O外观的字体-这肯定会让人一团糟。寻找其他类似的字母/数字组合。出于这个原因,可能会将0/O排除在混合之外

3) 选择带有细微衬线和重量变化的字体

有关易读性的一些指导原则,请参阅

使用正确的字体,我认为您可以选择任何字母/数字组合,并使其清晰易懂(除了可能的0和O)。我相信8/B、5/S和其他样品在正确的字体中是清晰的

另外,你可以考虑用一种颜色来表示字母,另一种是用数字表示颜色,这会给潜在的含糊不清的数字/字母组合提供线索。不过,我想把这作为一个微妙的暗示,因为剧烈的颜色变化会引起人们对字母或数字的注意,这会损害整体可读性


阅读您对其他答案的评论后进行编辑:

我只需要几千个代码,所以我不太担心域的大小


如果是这种情况,我建议保留整个数字集,只需选择性地添加与数字没有视觉(或听觉,如果你正在阅读这些)相似性的字母。使用6位数字,即使是数字,您也有比需要更多的代码可能性。有选择地添加字母以帮助区分要比有选择地删除一些字母容易。我可能会坚持使用1-9、A、Z、R、W和其他与数字不匹配的字母。

如果您有选择,您可能会通过更改字体来影响这一点。例如,许多面向程序员的字体故意斜杠零,对I、l和1使用不同的形状,等等。我记得,衬线字体通常也用于此目的。我猜——我无法证实这一点——这也是许多旧书用“文本数字”排版的原因,这些数字的高度不同,与页面的流动性更好,并且(据推测)增加了可读性。(见-是的,我几乎是逐字引用。)

我同意里德的观点,你最好的解决方案是使用font

如果试图消除不明确的数字,则会丢失
1
(看起来像小写的
l
)、
8
(大写的
B
)和
0
(大写或小写的
O
),这是可用数字字符的30%。太多了。您甚至可能会遇到
6
和大写
G
的问题

所以,消除相似的字母和数字确实会限制你的选择

当然,即使有字体,也有一些相似之处——零和大写字母O总是会给你带来问题

新的怎么样?或者类似的东西。衬线。单间距

我最喜欢的字体示例之一是伊利诺伊州的名称。试着用Arial在文本框中输入。放三个我在里面:伊利诺瓦。然后,试着看看有3个L。祝您好运,将插入点移动到正确的位置。使用Courier字体要容易得多:
Illlinois


StackOverflow和其他显示代码的网站使用类似Courier的字体来显示代码是有原因的。为什么SO和其他网站和软件(Apple)在数据输入字段中使用类似Courier的字体(文本框,文本区域,如下所示。

在生成代码时采用回溯方法如何,在这种方法中,您将使任何不符合一组规则的解决方案无效,例如不让外观相似的字符彼此相邻。如果您可以识别所有不需要的字符对并将包含它们的任何解决方案标记为无效,则如果你不想担心字体的问题,我想这是一个很难理解的问题。

下面是我编的一个列表(不包括小写字母):


当可能有复制/粘贴功能可用时,可读性在计算机屏幕上很重要吗?如果要从6英尺远的地方读取,我认为可以公平地假设这不会是特别交互式的…或者如果是,可能是在没有c'n'p的游戏系统中。这听起来肯定不像你的a普通网页…常识还不够吗?只需查看每个字母和数字,并从集合中删除所有可能存在歧义的字符。我当然可以使用常识,但显然可口可乐奖励没有(它们也有点阵问题)!我想利用现有的研究成果,而不是重新发明轮子。我会完全控制字体。我想打很多字母和数字。另一种可能是安排它,使其始终是字母数字字母数字等。因此有一定数量的图案
'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'