这更像是一个普遍的问题,而不是一个特定于 ruby 的问题,我只是碰巧在 ruby 中做这件事。我正在尝试使用例如 Base62 (0-9a-zA-Z) 的字符集将字符串转换为 Integer/Long/Bigint 或任何您想调用的字符串。
问题是当我尝试将像“0ab”这样的字符串转换为整数并将该整数转换回字符串时,我得到“ab”。任何以字母表的第一个字符开头的字符串都会发生这种情况。
这是一个示例实现,具有相同的问题。
https://github.com/jtzemp/base62/blob/master/lib/base62.rb
在行动:
2.1.3 :001 > require 'base62'
=> true
2.1.3 :002 > Base62.decode "0ab"
=> 2269
2.1.3 :003 > Base62.encode 2269
=> "ab"
我可能错过了明显的。
如果没有那个例外,我怎样才能双向转换?