今天有一个需求需要在Python编码,然后在前端解码的需求。
Python:base64编码url;Javascript: 解码
baidu找点东西真是不容易啊,找的有代码不对的,或者过时的。
其实,最终代码不多。这里记录一下。
Python端
import base64
from urllib import parse
#base64编码,结果:aHR0cHM6Ly...05EOXdXZnI=\n
str1_encode = base64.encodebytes(str_url.encode('utf8'))
#url编码,结果:aHR0cHM6Ly...........ZnI%3D%0A
str2_encode = parse.quote(str1_encode)
需要注意的是:base64编码后,可能存在 = \ 这样特殊字符,因此在作为url跳转前传递,还需要url编码一下。
JavaScript端
var url = window.location.href;
var locationHref = url.slice(url.indexOf('?') + 1).split('&');
var locationHrefObject = {};
locationHref.forEach(function (val) {
var parameter = val.slice(0, val.indexOf('='));
var data = val.slice(val.indexOf('=') + 1);
locationHrefObject[parameter] = data;
})
//url解码
var str1_decode = decodeURIComponent(locationHrefObject['u']);
//base64解码。使用atob函数。
var str2_decode = atob(str1_decode);
**