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

时间:2009-11-11 04:04:21

标签: encode

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

例如:

  

a2xki

4 个答案:

答案 0 :(得分:16)

Probably because:

  

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

通过仅使用字母数字字符并且不区分大小写,可以省去两种类型的错误:输入错误的情况(或文件系统问题和由于区分大小写引起的混淆),以及URL中的特殊字符。当URL包含根据RFC 2396保留的字符时,必须对这些字符进行转义(这会延长和扩大URL)。但是各种应用程序级错误也会使用未保留的字符,例如'!不受欢迎(某些示例:1 2 {{3 }})。

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

答案 1 :(得分:5)

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

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

答案 2 :(得分:2)

很容易通过电子邮件,口头,聊天窗口等方式向其他人提供。该URL肯定会允许更多字符,但这不会让人感到困惑,特别是如果您必须通过电话,视频,电视,甚至是从印刷品或报纸上打字。

这是非常人性化的。

答案 3 :(得分:1)

因为你可以用[a-z0-9]代表它,很可能。