为什么reddit使用base36作为文章ID?

fen*_*chi 3 encode

为什么reddit使用base36作为文章ID?

例如:

a2xki

Ben*_*pan 16

可能是因为:

Base 36是...使用ASCII字符的最紧凑的不区分大小写的字母数字系统

通过仅使用字母数字字符并且不区分大小写,可以省去两种类型的错误:输入错误的情况(或文件系统问题和由于区分大小写引起的混淆),以及URL中的特殊字符.当URL具有根据RFC 2396保留的字符时,必须对这些字符进行转义(这将延长和扩大URL).但各种应用程序级的错误也使使用甚至未保留类似的字符'!不希望的(一些例子:1 2 3).

即使使用字母数字和区分大小写的限制,基数36显然提供了比十进制更紧凑的表示,允许短和(可以说)清晰的ID.本文的ID为十进制36351705; 当在基数36中表示时,它减少3个字符.


gro*_*kus 5

第二个只是一些人(你可以用[a-z0-9]表示),另外,

  1. 该方案应该生成非常短的ID.
  2. 易于使用这些ID在磁盘结构上创建.
  3. 易于转换为数字ID以查找数据库等.