33,028
社区成员




private void button1_Click(object sender, EventArgs e)//使用
{//by mfkiqpl
string ss = "http://t.sina.com.cn/1235919683/5KD0TcOcJsZ";//舒畅的某条微博
richTextBox1.AppendText(
sinaWburl2ID(ss) //进行转换后得到真实微博ID是:2211102122143034713
);
}
private string sinaWburl2ID(string url) {
url = url.Substring(url.LastIndexOf("/") + 1);//取得url地址后的62进制数【5KD0TcOcJsZ】
string[] surl = new string[4];
surl[3] = str62to10(url.Substring(url.Length-4));//倒数第四段,取4位,转10进制
surl[2] = str62to10(url.Substring(url.Length - 7, 3));//倒数第二段,取3位,转10进制
surl[1] = str62to10(url.Substring(url.Length - 8, 1));//倒数第三段,取1位,转10进制
surl[0] = str62to10(url.Substring(0, url.Length - 8));//第一段,取剩下位数,转10进制
if (surl[3].Length < 7) { surl[3] = surl[3].PadLeft(7, '0'); }//倒数第四段10进制数不足7位 左边补0 满足7位
if (surl[2].Length < 6) { surl[2] = surl[2].PadLeft(6, '0'); }//倒数第三段10进制数不足6位 左边补0 满足6位
return surl[0] + surl[1] + surl[2] + surl[3];//合并四段,返回
}
private string str62to10(string str62) {//62进制转10进制
Int64 i64=0;
for (int i = 0; i < str62.Length; i++) {
Int64 Vi = (Int64)Math.Pow(62, (str62.Length - i - 1));
char t = str62[i];
i64 += Vi * str62keys(t.ToString());
}
return i64.ToString();
}
private Int64 str62keys(string ks)//62进制字典
{
string[] keys ={ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z" };
int i = 0;
foreach (string k in keys) {
if (ks==k) { return i; }
i++;
}
return 0;
}