Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Pako无法解压缩python中生成的gzip文件_Javascript_Python_Angular_Gzip_Pako - Fatal编程技术网

Javascript Pako无法解压缩python中生成的gzip文件

Javascript Pako无法解压缩python中生成的gzip文件,javascript,python,angular,gzip,pako,Javascript,Python,Angular,Gzip,Pako,我使用以下代码从python生成gzip文件:(使用python 3) 但是,我现在正试图使用Pako库(我使用Angular 2)在Javascript中读取此文件: 但是我在控制台中遇到了这个错误:未知的压缩方法。我应该做些别的事情来正确地膨胀gzip文件吗?结果表明,我需要使用res.blob()函数来获取真正的二进制数据,而不是res.arrayBuffer();然后将blob转换为数组缓冲区: return this.http.get("output.json.gzip", new R

我使用以下代码从python生成gzip文件:(使用python 3)

但是,我现在正试图使用Pako库(我使用Angular 2)在Javascript中读取此文件:


但是我在控制台中遇到了这个错误:
未知的压缩方法
。我应该做些别的事情来正确地膨胀gzip文件吗?

结果表明,我需要使用res.blob()函数来获取真正的二进制数据,而不是res.arrayBuffer();然后将blob转换为数组缓冲区:

return this.http.get("output.json.gzip", new RequestOptions({ responseType: ResponseContentType.Blob }))
      .map((res:Response) => {
        var blob = res.blob();
        var arrayBuffer;
        var fileReader = new FileReader();
        fileReader.onload = function() {
            arrayBuffer = this.result;
            try {
              let result:any = pako.ungzip(new Uint8Array(arrayBuffer), {"to": "string"});
              let obj = JSON.parse(result);
              console.log(obj);
            } catch (err) {
              console.log("Error " + err);
            }
        };
        fileReader.readAsArrayBuffer(blob);
        return "abc";
      });

您已将其编码为utf-8。你在哪里解码它?我如何使用JS解码它?这对我来说非常好,除了我必须替换
arrayBuffer=This.result
arrayBuffer=fileReader.result
this.http.get("output.json.gzip")
      .map((res:Response) => {
        var resText:any = new Uint8Array(res.arrayBuffer());
        var result = "";
        try {
          result = pako.inflate(resText, {"to": "string"});
        } catch (err) {
          console.log("Error " + err);
        }
        return result;

      });
return this.http.get("output.json.gzip", new RequestOptions({ responseType: ResponseContentType.Blob }))
      .map((res:Response) => {
        var blob = res.blob();
        var arrayBuffer;
        var fileReader = new FileReader();
        fileReader.onload = function() {
            arrayBuffer = this.result;
            try {
              let result:any = pako.ungzip(new Uint8Array(arrayBuffer), {"to": "string"});
              let obj = JSON.parse(result);
              console.log(obj);
            } catch (err) {
              console.log("Error " + err);
            }
        };
        fileReader.readAsArrayBuffer(blob);
        return "abc";
      });