我正在寻找将字符串转换为BASE62的C#代码,如下所示:
http://www.molengo.com/base62/title/base62-encoder-decoder
我需要这些编码和解码方法用于URL编码。
关于二进制到文本编码方案的背景:
https://en.wikipedia.org/wiki/Base62
https://en.wikipedia.org/wiki/Base64
BASE62编码方案的良好解释:
https://www.codeproject.com/Articles/1076295/Base-Encode
尝试使用此处提供的C#库,其中添加了一些扩展方法,使您可以将字节数组转换为BASE62(二进制到文本编码方案)并从中进行转换。但要小心,使用正确的字符串转换为字节调用……因为您可能希望将字节作为ASCII字符或Unicode字节流等(例如:Encoding.GetBytes(text) 或 System.Text.ASCIIEncoding.ASCII.GetBytes(text); 等)
byte[] bytestoencode = ..... string encodedasBASE62 = bytestoencode.ToBase62(); ..... byte[] bytesdecoded = encodedasBASE62.FromBase62();
您可以按照以下方式为任何基数进行操作:
static string ToBase62(ulong number)
{
var alphabet = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
var n = number;
ulong basis = 62;
var ret = "";
while (n > 0)
{
ulong temp = n % basis;
ret = alphabet[(int)temp] + ret;
n = (n / basis);
}
return ret;
}
虽然不是真正的答案,但希望能帮助您构建C#版本:
Javascript Base62编码/解码:
http://x443.wordpress.com/2012/03/18/javascript-base62-encode-decode/
{255}
,它给出的结果是“z7”,而不是“47”。此外,在不该有影响的情况下,前导零非常重要,因此{0, 255}
会得到另一个结果,即“0FF” 。 - Maxime Recuerda