【发布时间】:2010-10-08 08:53:06
【问题描述】:
我想要在 URL 中以最短的方式表示整数。例如,可以使用十六进制将 11234 缩短为“2be2”。由于 base64 使用的是 64 字符编码,因此应该可以使用比十六进制更少的字符来表示 base64 中的整数。问题是我想不出使用 Python 将整数转换为 base64(然后再转换回来)的最简洁方法。
base64 模块具有处理字节串的方法 - 所以也许一种解决方案是将整数转换为其二进制表示形式作为 Python 字符串......但我也不知道该怎么做。
【问题讨论】:
-
Simon:请看 Øystein krog 的回答。您想使用整数数据的“base 64”表示,而不是 base64 模块,该模块旨在编码任意二进制数据并且不压缩数字的文本表示。见en.wikipedia.org/wiki/Base_64)
-
我希望可以在部分工作中重用现有的 base64 模块,但遗憾的是,情况似乎并非如此。感谢大家的所有出色回复。
-
对于任何感兴趣的人,我最终滚动了自己的代码来执行此操作:djangosnippets.org/snippets/1431
-
在阅读了 Ricardo 关于 Øystein Krog 答案的评论(没有任何代码)之后,我在底部写了一些非常基本的 Python,获得 0 票:P