Javascript 解码/编码base64字符串以获取图形的节点
我正在尝试为电脑游戏创建一个小工具,其中一个功能是粘贴一个url,并从一个base64编码的图形中解码它的节点 以下是一个例子: 根目录(ID:54447): 在图形中具有某些活动节点的根目录: 结果必须是[54447、57226、59650、19374、6949、55643、27929],我不知道它是否有序,但这是活动的节点ID。可能根ID甚至不在该数组中(请参阅下面的代码) 你也可以在官方网站上测试,只需点击一些节点,url就会改变。 经过一些研究,我发现了以下代码,但无法使其正常工作:Javascript 解码/编码base64字符串以获取图形的节点,javascript,jquery,base64,decode,encode,Javascript,Jquery,Base64,Decode,Encode,我正在尝试为电脑游戏创建一个小工具,其中一个功能是粘贴一个url,并从一个base64编码的图形中解码它的节点 以下是一个例子: 根目录(ID:54447): 在图形中具有某些活动节点的根目录: 结果必须是[54447、57226、59650、19374、6949、55643、27929],我不知道它是否有序,但这是活动的节点ID。可能根ID甚至不在该数组中(请参阅下面的代码) 你也可以在官方网站上测试,只需点击一些节点,url就会改变。 经过一些研究,我发现了以下代码,但无法使其正常工作:
url = url.replace(/\-/g, "+").replace(/\_/g, "/"); // also delete the part before the base64 string
// get nodes
var a = [];
for (i = 6; i < url.length; i += 2) {
var o = (255 & url[i]) << 8 | 255 & url[i + 1];
a.push(o);
}
// get root
var d = ((255 & url[0]) << 24 | (255 & url[1]) << 16 | (255 & url[2]) << 8 | (255 & url[3]) << 0, url[4]);
url=url.replace(/\-/g,“+”).replace(/\\-/g,“/”);//同时删除base64字符串之前的部分
//获取节点
var a=[];
对于(i=6;i var o=(255&url[i])如果你在JS中使用base64做任何事情,只需使用and窗口
方法。不要自己编写算法。我已经测试过了,在这种情况下不起作用:(为什么不?你得到了什么?atob('aaaaaaa wmagyvlrm0z2vvfiukc')=一些奇怪的字符。atob('aaaa wmagyvlrm0zkshzw9-K37DpAg==”。替换(/-/g,“+”).replace(///g,“/”)
是您想要的。是的,这些是奇怪的字符。获取它们的字符代码,并像它们那样将它们转换为整数。