5

我正在寻找将字符串转换为 BASE62 的 c# 代码,如下所示:

http://www.molengo.com/base62/title/base62-encoder-decoder

我需要那些用于 URL 编码的编码和解码方法。

4

3 回答 3

4

BINARY to TEXT 编码方案的背景:

https://en.wikipedia.org/wiki/Base62

https://en.wikipedia.org/wiki/Base64

BASE62编码方案的很好解释:

https://www.codeproject.com/Articles/1076295/Base-Encode

试试这里提供的 C# 库,它添加了一些扩展方法,允许您将字节数组与 BASE62(二进制到文本编码方案)相互转换。

github上有很多base62库,看看:

如果您的源数据包含在“字符串”中,那么您首先需要将“字符串”转换为合适的字节数组。

但要小心,使用正确的字符串到字节转换调用......因为您可能希望字节是 ASCII 字符或 Unicode 字节流等,即Encoding.GetBytes(text)System.Text.ASCIIEncoding.ASCII.GetBytes(text);

byte[] bytestoencode = ..... 

string encodedasBASE62 = bytestoencode.ToBase62();

.....

byte[] bytesdecoded = encodedasBASE62.FromBase62();
于 2013-07-19T11:37:23.047 回答
3

您可以通过以下方式对任何基础执行此操作:

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;
}
于 2015-10-24T16:17:18.923 回答
1

不是真正的答案,但希望这可以帮助您构建它的 C# 版本:

Javascript Base62 编码/解码:

http://x443.wordpress.com/2012/03/18/javascript-base62-encode-decode/

于 2013-07-19T11:44:52.013 回答