winform好像没有办法调用JS那如果我用代码模拟JS里面的函数应该是可行的吧,可奇怪就是不行,不知道是不是我模拟错误,麻烦哪个哥们有空,帮忙用C#模拟一下,下面的JS代码?var base64EncodeChars="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function base64(str)
{
var out,i,len;
var c1,c2,c3;
len=str.length;
i=0;
out="";
while(i<len)
{
c1=str.charCodeAt(i++)&255;
if(i==len)
{
out+=base64EncodeChars.charAt(c1>>2);
out+=base64EncodeChars.charAt((c1&3)<<4);
out+="==";break
}
c2=str.charCodeAt(i++); if(i==len)
{
out+=base64EncodeChars.charAt(c1>>2);
out+=base64EncodeChars.charAt(((c1&3)<<4)|((c2&240)>>4));
out+=base64EncodeChars.charAt((c2&15)<<2);
out+="=";
break
}
c3=str.charCodeAt(i++);
out+=base64EncodeChars.charAt(c1>>2);
out+=base64EncodeChars.charAt(((c1&3)<<4)|((c2&240)>>4));
out+=base64EncodeChars.charAt(((c2&15)<<2)|((c3&192)>>6));
out+=base64EncodeChars.charAt(c3&63)
}
return out
}

解决方案 »

  1.   

    貌似是可以的,你搜一下。实在不行你用webservice也行
      

  2.   

    第一,自己转换成c#代码,没什么难理解的,都是位操作
    第二,你这个js在哪呢,如果是在你自己的asp页面上,是可以通过c#代码调用的
      

  3.   

    我是用httpwebrequest模拟get操作  get后面的地址,是用一个JS生成的乱码。我是winform程序,不是web,应该是不能直接调用吧。我就是两年没用C#了,模拟上面的位操作,不知道是不是我模拟错误,导致结果不对,哪位哥们,模拟一下
      

  4.   

    其实也不用,我相信应该不会这个也模拟错误吧。private string base64(string str)
            {
                int i = 0, len = str.Length;
                string outstr = string.Empty;
                string base64EncodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
                while (i < len)
                {
                    int c1 = str.ElementAt(i++) & 255;
                    if (i == len)
                    {
                        outstr += base64EncodeChars.ElementAt(c1 >> 2);
                        outstr += base64EncodeChars.ElementAt((c1 & 3) << 4);
                        outstr+="==";
                        break;
                    }
                    int c2 = str.ElementAt(i++);
                    if (i == len)
                    {
                        outstr += base64EncodeChars.ElementAt(c1 >> 2);
                        outstr += base64EncodeChars.ElementAt(((c1 & 3) << 4) | ((c2 & 240) >> 4));
                        outstr += base64EncodeChars.ElementAt((c2 & 15) << 2);
                        outstr += "=";
                        break;
                    }
                    int c3 = str.ElementAt(i++);
                    outstr += base64EncodeChars.ElementAt(c1 >> 2);
                    outstr += base64EncodeChars.ElementAt(((c1 & 3) << 4) | ((c2 & 240) >> 4));
                    outstr += base64EncodeChars.ElementAt(((c2 & 15) << 2) | ((c3 & 192) >> 6));
                    outstr += base64EncodeChars.ElementAt(c3 & 63);
                }
                return outstr;
            }
      

  5.   

    再请教个问题,js中fromCharCode可以用c#哪个代替