Преобразовать строку в 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/

Другие вопросы по тегам