2012-08-09 78 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