如何将整数转换为基数62 (如十六进制,但具有以下数字:'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ').
我一直在尝试为它寻找一个好的Python库,但它们似乎都忙于转换字符串。Python base64模块只接受字符串,并将单个数字转换为四个字符。我在找一些类似于网址缩写工具使用的东西。
发布于 2009-07-13 14:27:02
这方面没有标准的模块,但我已经编写了自己的函数来实现这一点。
请注意,您可以为其提供用于编码和解码的任何字母表。如果省略alphabet
参数,您将获得在第一行代码中定义的62个字符的字母表,从而对62 base进行编码/解码。
希望这能有所帮助。
PS -对于网址缩写程序,我发现最好是省略一些容易混淆的字符,如0Ol1oI等。因此,我使用这个字母表来满足我的网址缩短需求-- "23456789abcdefghijkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ"
玩得开心。
发布于 2010-03-31 07:58:33
我曾经写过一个脚本来做这件事,我认为它很优雅:)
示例用法:
发布于 2009-09-28 14:20:25
下面的解码器生成器与任何合理的基础一起工作,具有更整洁的循环,并在遇到无效字符时给出明确的错误消息。
https://stackoverflow.com/questions/1119722
复制相似问题