2012-08-09 74 views
0

我正在开发一个URL缩写器vyo.la,但我不确定如何完全按照我的意思去做。我并没有像bit.ly那样的网站不使用整数,但有一些缺少散列,十六进制或类似的东西。我目前的应用只使用整数。我试过base64,但我注意到它只对字符串进行编码,并将整数转换为字符串比整数本身提供更长的键。Rails number to base 64 or similar

无论如何要使用所有带数字的大写和小写字母进行转换,以便我可以最大化可用的短网址的数量?

我宁愿轻松地将整数转换为值并将值转换回整数。我不希望有一个随机的friendly_id分配给它,以避免碰撞。

回答

1

如果我没有弄错很多网址缩写符号使用基数36(a-z,0-9)或58(a-z,A-Z,0-9),它们应该可以做你想要的。 Here's a base 58 ruby library。从自述中的示例中,它应该是你要找的东西:

# Int to Base58 
Base58.encode(12345) # => 4ER 

# Base58 to Int 
Base58.decode('A2Ph') # => 6639914 
+0

太好了。这正是我所期待的。 – 2012-08-09 21:29:59