Преобразовать строку в BASE62
Я ищу код C# для преобразования строки в BASE62, например:
http://www.molengo.com/base62/title/base62-encoder-decoder
Мне нужны эти методы кодирования и декодирования для URL-кодирования.
3 ответа
Попробуйте доступную здесь библиотеку 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/