我正在使用带有Base32编码的yoururls在短信中发送缩短的链接。 URL前面有一条消息,因为sms限制为160个字符,而我的消息大约是140个字符,我需要非常小心字符数。
我的问题是这个;如何使用base32编码计算我可以使用4个字符限制的URL数量?
答案 0 :(得分:0)
我不确定你是否在询问permutations。
base32编码中的每个字符可以有32个值([A - Z]和[2 - 7])。如果您使用http://yoursite.com/xxxx
形式,其中xxxx
是短网址,则四位数字可以包含32个 4 排列。也就是说, 1,048,576 。
如果您还包含三位数的网址(例如http://yoursite.com/xxx
),则可以包含32个 3 排列。也就是说, 32,768 。连同四位数的URL,您总共获得 1,081,344 。
如果您还使用2位数网址(例如http://yoursite.com/xx
),则会获得额外的1,024个网址,总计 1,082,368 。包括单个数字(例如http://yoursite.com/x
)将为您提供额外的32.总计 1,082,400 。
但是你不需要只使用[A - Z]和[2 - 7]。根据{{3}},您可以使用字符ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~:/?#[]@!$&'()*+,;=
。这是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)
即使您遗漏了字符-._~:/?#[]@!$&'()*+,;=
,因为它们实际上不适合缩短的网址,您仍然会获得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)