массив javascript обратно в байтовую строку - PullRequest
1 голос
/ 21 августа 2011

Я использую упаковочную машину, которая облегчает использование Gzip в JXG.Распаковка части строки в кодировке 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 и сжатие gzip с помощью php).

Есть идеи, как отменить приведенную выше функцию?

1 Ответ

1 голос
/ 21 августа 2011
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 );
}
...