2014-08-27 50 views
0

我使用帶有Base32編碼的yoururls在短信內發送縮短的鏈接。 URL前面有一條消息,由於短信限制爲160個字符,我的消息大約爲140個字符,因此我需要非常小心字符數。此配置有多少個URL?

我的問題是這樣的;如何計算使用base32編碼可以適應4個字符限制的URL數量?

回答

0

我不確定您是否在詢問permutations

base32編碼中的每個字符可以有32個值([A - Z]和[2 - 7])。如果您使用表格http://yoursite.com/xxxx,其中xxxx是短網址,則四位數可以包含32個排列組合。即,1,048,576

如果您還包含三位數字的網址(例如http://yoursite.com/xxx),則可以有32 排列。那就是,32,768。加上四位數的URL,那麼總共可以得到1,081,344

如果您還使用2位數字的網址(例如http://yoursite.com/xx),則會獲得額外的1024個網址,合計爲1,082,368。並且包括單個數字(例如http://yoursite.com/x)將會給你增加32個。總計1,082,400


但是,您不需要僅使用[A - Z]和[2 - 7]。根據RFC3986,您可以使用字符ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-._~:/?#[]@!$&'()*+,;=。這是84個不同的人物。有了這個:

http://yoursite.com/xxxx    49,787,136 
http://yoursite.com/xxx added   50,379,840 (+592,704) 
http://yoursite.com/xx added   50,386,896 (+ 7,056) 
http://yoursite.com/x added   50,386,980 (+  84) 

即使你離開了字符-._~:/?#[]@!$&'()*+,;=,因爲他們真的沒有一個縮短的URL適合,你仍然會得到62個字符。隨着:

http://yoursite.com/xxxx    14,776,336 
http://yoursite.com/xxx added   15,014,664 (+238,328) 
http://yoursite.com/xx added   15,018,508 (+ 3,844) 
http://yoursite.com/x added   15,018,570 (+  62) 
+0

謝謝您的全面解答。除了你說的關於A-Z是基地32的一部分的部分外,這是很好的。我認爲你的意思是a-z。無論如何,當你幫助我理解它時,我會獎賞你的賞金。 – 2014-10-03 10:43:17

+0

謝謝@Michael。我決定使用大寫字母,因爲[RFC4648:Base16,Base32和Base64數據編碼](http://tools.ietf.org/html/rfc4648)使用大寫字母。請參閱RFC的表3。 – Krumia 2014-10-03 10:48:28

+0

好了解,謝謝 – 2014-10-03 14:50:19