Javascript 来自基于Sencha的api的未知json响应

Javascript 来自基于Sencha的api的未知json响应,javascript,json,base64,Javascript,Json,Base64,我无法从基于sencha的api解码以下json响应 我尝试将其解码为base64字符串,但最终结果总是格式不正确,并且有许多无法识别的字符 function handleServerReponse(a) { if (a.substr(0, 5) == 'I:Qc[') { var f = 5; var e = (a.substr(5) + '').split(''); var d = [];

我无法从基于sencha的api解码以下json响应

我尝试将其解码为base64字符串,但最终结果总是格式不正确,并且有许多无法识别的字符

function handleServerReponse(a) {
        if (a.substr(0, 5) == 'I:Qc[') {
            var f = 5;
            var e = (a.substr(5) + '').split('');
            var d = [];
            for (var b = e.length - 1; b >= 0; b--) {
                d[b] = String.fromCharCode(e[b].charCodeAt(0) - f)
            }
            var c = d.join('');
            //c = fix_utf8(base64_decode(c));
            //c = base64_decode(c);
            a = c
        }
        return a
    }

function fix_utf8(c) {
        var d = []
          , a = 0
          , b = 0
          , e = 0
          , f = 0;
        while (a < c.length) {
            b = c.charCodeAt(a);
            if (b < 128) {
                d.push(String.fromCharCode(b));
                a++
            } else {
                if (b > 191 && b < 224) {
                    e = c.charCodeAt(a + 1);
                    d.push(String.fromCharCode((b & 31) << 6 | e & 63));
                    a += 2
                } else {
                    e = c.charCodeAt(a + 1);
                    f = c.charCodeAt(a + 2);
                    d.push(String.fromCharCode((b & 15) << 12 | (e & 63) << 6 | f & 63));
                    a += 3
                }
            }
        }
        return d.join('')
    }

function base64_decode(a) {
        var e = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
        var f, j, n, l, m, h, i, d, b = 0, g = 0, k = '', c = [];
        if (!a) {
            return a
        }
        a += '';
        do {
            l = e.indexOf(a.charAt(b++));
            m = e.indexOf(a.charAt(b++));
            h = e.indexOf(a.charAt(b++));
            i = e.indexOf(a.charAt(b++));
            d = l << 18 | m << 12 | h << 6 | i;
            f = d >> 16 & 255;
            j = d >> 8 & 255;
            n = d & 255;
            if (h == 64) {
                c[g++] = String.fromCharCode(f)
            } else {
                if (i == 64) {
                    c[g++] = String.fromCharCode(f, j)
                } else {
                    c[g++] = String.fromCharCode(f, j, n)
                }
            }
        } while (b < a.length);k = c.join('');
        return k
    }

 function utf8_from_str(s) {
    for(var i=0, enc = encodeURIComponent(s), a = []; i < enc.length;) {
        if(enc[i] === '%') {
            a.push(parseInt(enc.substr(i+1, 2), 16))
            i += 3
        } else {
            a.push(enc.charCodeAt(i++))
        }
    }
    return a
}

function utf8_to_str(a) {
    for(var i=0, s=''; i<a.length; i++) {
        var h = a[i].toString(16)
        if(h.length < 2) h = '0' + h
        s += '%' + h
    }
    return decodeURIComponent(s)
}
函数handleServerResponse(a){
如果(a.substr(0,5)='I:Qc['){
var f=5;
变量e=(a.substr(5)+'')。拆分('');
var d=[];
对于(var b=e.length-1;b>=0;b--){
d[b]=String.fromCharCode(e[b].charCodeAt(0)-f)
}
变量c=d.连接(“”);
//c=固定utf8(基本64解码(c));
//c=基本64_解码(c);
a=c
}
归还
}
函数fix_utf8(c){
变量d=[]
,a=0
,b=0
,e=0
,f=0;
while(a191&&b<224){
e=c.charCodeAt(a+1);

d、 push(String.fromCharCode((b&31)JSON响应在哪里?@JorgeFuentesGonzález我现在添加了API响应。
 I:Qc[j~O~_]S6gMWNougj~OVhr>|_]O5jZyqjXN;NoZ}SYl~TYN}SnNxNp}{griuiM[p_XN;Nn5}RYhzRoZ9RV~Nn|nYLK5f]W6_LZnTnNRn99RY^~TYJnQHOYiLK5_XN;NpSGNn|nWpqVZ~N;No^|SRnQHOIf]W:NotnYJJlXp>RYJJnQHOff]GLf]_qNotnTYN|RhnQHOG_LW~_]SNotnSYZ7RHGIVZ:JYJ[RXZiN[HGJZnNxNqOm_LK~XZVnTnOVRYqHRYF8WXNxNqGZj]GqNotnZ5_XNn|n[]SqV7>p_[WuiL}qNotnZ7qz_7}qNJ_mg\qxjXGX_]Su_L[z^7ZnQHOH_\WNotnR~NxNpOmiLmNotnRnNxNqS}WsVnTnN~QIV6R~NxNp}{iKSujrZnTnN}SX|8RIFnQHORg8WYf]uqV\S~_]RnTnN|QoVnQHO__\K~Vs[ugMVnTnN}TY^7Nn|nf]SY^\6qY\KugLqz_5>~W]mqg]G5NotnYr=nQHOG[p5nTnNpRn|6SoFxSIF|Nn|nV]_mf\}m^r}qW]K6f]W:NotnOIVTH||RoVnQHOugp_{hr[ogL>i]OqNotnYr=nQHOR^]S5[MOmgsSr_]OX_\SJ^]WqY\>ziLm__\K~NotnV][sNIN|RYNnQHOR^]S5[MOmgsSr_]O\^\}6_XN;NnV}QIh8RH|6RIFnQHOuh5}uh8Wq_J_{hqSmgLZnTnOTg~NxNp}uh8WNou<Nrm~_\^nTnN{ioJ{hMO{hL[~iLqqh~>VRYqHRYF8WX>xf]S5h~O>QHOIg7:5^\S5h~N;j~Othr[rNotnQ8^}Q8G~g8GqhsWu_]R{ZIJ:VoJ|S5Z{hL[~h7>zh~>rf\[x_MR{Y8_qhs_u_]hnkX|nZLm{iL>[rqp_\>Nou<Nrm~_\^nTnN{ioJ{hMO{hL[~iLqqh~>VRYqHRYF8WX>|fL>5g8S7f\Wqg8RnkX|n[]GshrKp_Z}ugryLg8Oq^7}{h8[~_]RnTsxn_s[z^8Wug79nTnOofLKz_7[Yi\O^8OuhMWug79nQHOxf\:wiL[9iHN;NqGx_\K_XG[hLi~^\WqNs5xNq[|_8Om_L[Rf\:w[MOmgsSm^8Wug7:Nou<Nr_6grS5f\>zNotn^7mmgriqZ8[nh7S~f]G5f\>zNn|ngLqzf8WqjMVnTnOVgL[mh7Zl[]GshrKp_XO>QHO[hLi~^\WqYLqzf5qzir[iL6qgsWGgrKxj]Suh~N;j~Ori\:oiLq{gnN;NrSt^\:s_[S6^sSohrq|iLq{gnNxNr}ugry5_]m5NotnZL}q^]SqNK[|_8Om_LZnkX|n[]GshrKp_Z}ugryIg76|^]Om^r}qh~N;j~Ori\:oiLq{gnN;NrSt^\:s_[S6^sSohrq|iLq{gnNxNr}ugry5_]m5NotnZL}q^]SqNK[|_8Om_LZnk]6ikVBB