我目前使用的是Ruby的'base64‘,但是创建的字符串有像/+=这样的特殊字符。
我如何删除这些,并仍然确保我的解码工作,在未来?
本质上,我希望使用字母数字。
发布于 2013-01-10 02:29:29
与其发明一些新的东西,我会使用Base64.urlsafe_encode64 (和它的对应Base64.urlsafe_decode64),它基本上是base64 +和/和_。这符合RFC4648,因此应该被广泛理解
发布于 2013-01-10 00:11:42
如果你想要字母数字,我认为使用基数36更好,也更实用。Ruby有内置的编码/解码,最高可达36进制(26个字母和10个数字)。
123456.to_s(36)
# => "qglj"
"qglj".to_i(36)
# => 123456发布于 2013-01-10 01:11:09
class Integer
Base62_digits = [*("0".."9"), *("a".."z"), *("A".."Z")]
def base_62
return "0" if zero?
sign = self < 0 ? "-" : ""
n, res = self.abs, ""
while n > 0
n, units = n.divmod(62)
res = Base62_digits[units] + res
end
sign + res
end
end
p 124.base_62 # => "20"这可以调整为处理较低的基础,但它可能是足够的。
https://stackoverflow.com/questions/14241343
复制相似问题