javascript数组返回字节字符串

发布于 2024-11-30 13:42:18 字数 604 浏览 0 评论 0原文

我正在使用一个包装器 atm,它使 JXG 的 Gzip 实用程序变得更加容易。解压缩 Base64 编码的字符串部分效果相当好,但我希望能够再次将其转回 Base64 编码的字符串。然而,我似乎无法理解它,解压缩的函数执行以下操作:

unzipBase64AsArray: function(input, bytes) {
    bytes = bytes || 1;

    var dec = this.unzipBase64(input),
        ar = [], i, j, len;
    for (i = 0, len = dec.length/bytes; i < len; i++){
        ar[i] = 0;
        for (j = bytes-1; j >= 0; --j){
            ar[i] += dec.charCodeAt((i *bytes) +j) << (j *8);
        }
    }
    return ar;
}

现在我需要反转它,我有带有数字的数组并希望将其转换为字节字符串(可以执行base64编码以及使用 php 进行 gzip 压缩)。

知道如何反转上面的功能吗?

I'm using a wrapper atm that makes JXG's Gzip utils a bunch easier. The unzipping a base64 encoded string part works rather nicely however I want to be able to turn it back into a base64 encoded string again. I somehow can't seem to wrap my head around it however, the function which unzips does the following:

unzipBase64AsArray: function(input, bytes) {
    bytes = bytes || 1;

    var dec = this.unzipBase64(input),
        ar = [], i, j, len;
    for (i = 0, len = dec.length/bytes; i < len; i++){
        ar[i] = 0;
        for (j = bytes-1; j >= 0; --j){
            ar[i] += dec.charCodeAt((i *bytes) +j) << (j *8);
        }
    }
    return ar;
}

Now I need to reverse that, I have my array with numbers and wish to turn it into a byte string (could do the base64 encoding and gzip compression with php).

Any idea how to reverse the function above?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

め七分饶幸 2024-12-07 13:42:18
zipArrayAsBase64: function( ar, bytes ) {
    bstr = '';
    for( i = 0; i < ar.length; ++i ) {
        for( j = 0; j < bytes; ++j ) {
            bstr += String.fromCharCode( ( ar[i] >> (j*8) ) & 0xFF );
        }
    }
    return this.zipBase64( bstr );
}
zipArrayAsBase64: function( ar, bytes ) {
    bstr = '';
    for( i = 0; i < ar.length; ++i ) {
        for( j = 0; j < bytes; ++j ) {
            bstr += String.fromCharCode( ( ar[i] >> (j*8) ) & 0xFF );
        }
    }
    return this.zipBase64( bstr );
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文