1. 程式人生 > >使用pako.js實現gzip的壓縮和解壓

使用pako.js實現gzip的壓縮和解壓

<script type="text/javascript" src="pako.js"></script>


<script >


var b64Data     = 'H4sIAAAAAAAAAJ3UMQ7CMAwF0KugP2ewEzdpcxXUAbWAOiHUMqCqdyeVQAobfGXIYL8hP5ZXnEdkeNEk6vUgXTbLonC4zMjHFY/5Wm511ekdTsOCLKVp2rlIKOA2jTuBot/cr7BhobEwsbAloY8kDGyqoQ5H/oHsdwQ21cCmaspCz0L2jcYOgLHhNGw4TT1yVmBpuS9PZHWY35siqnxvimEvpE9FY4peQhfbhO0FDnuFqWAEAAA=';
var ticketData = '{"ed":"20170121 09:44:01","fs":[{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"003","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"005","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"004","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"007","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"008","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"026","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"033","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"034","oids":["0"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"035","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"037","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"038","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"041","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"042","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"047","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"046","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"048","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"051","oids":["1"]},{"usg":[1,1,1,1,1,1,1],"act":0,"fid":"053","oids":["4"]}],"qty":1,"sd":"20161021 09:44:01","cd":"72016102116762039687"}';
// Output to console
var s = unzip(b64Data);
console.log("unzipped:");
console.log(s);


var data = zip(ticketData);
console.log("zipped:");
console.log(data);


function unzip(b64Data){
	var strData     = atob(b64Data);
	
	// Convert binary string to character-number array
	var charData    = strData.split('').map(function(x){return x.charCodeAt(0);});


	// Turn number array into byte-array
	var binData     = new Uint8Array(charData);


	// // unzip
	var data        = pako.inflate(binData);


	// Convert gunzipped byteArray back to ascii string:
	strData     = String.fromCharCode.apply(null, new Uint16Array(data));
	return strData;
}


function zip(str){
	var binaryString = pako.gzip(str, { to: 'string' });
	
	return btoa(binaryString);
}
</script>

相關推薦

使用pako.js實現gzip壓縮和解

<script type="text/javascript" src="pako.js"></script> <script > var b64Data = 'H4sIAAAAAAAAAJ3UMQ7CMAwF0KugP2ew

哈夫曼編碼實現文字壓縮和解(C++)

哈弗曼樹:又稱最優二叉樹,是帶權路徑長度最短的樹。 哈夫曼編碼:是一種字首編碼,即同一字符集中任何一個字元的編碼都不是另外一個字元編碼的字首(最左子串)。         在哈弗曼樹中,若用‘0’表示左子樹,‘1’表示右子樹,那麼每當從根遍歷到一個葉子節點時都會形成一個0

GZip壓縮和解(.Net)

.Net支援兩種壓縮格式:GZip和Deflate。我試了一下,壓縮率和速度沒區別。其中,GZip可以被WinRAR開啟。使用起來很簡單,下面的程式將字串壓縮入檔案: using (DeflateStream gzip =new DeflateStream(fs, Compr

Java字串的GZIP壓縮和解

import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException

Qt實現zip壓縮和解,編譯、呼叫zlib和QuaZip動態庫過程詳解

http://blog.csdn.net/qq_37354286/article/details/78858788之前有個小專案中需要對zip壓縮檔案進行壓縮和解壓操作,需要用到zlib庫,使用Qt開發的話可以用到已經封裝好的QuaZip。作為一枚新人程式設計師應有的習慣,我

使用zlib實現gzip格式資料的壓縮和解

注意程式碼中的註釋部分,這裡設定是專門針對gzip的,缺少了就不行了,gzip壓縮格式和其他格式的區別就在這裡。 Bytef 就是 unsigned char,uLong就是 unsigned lon

PAT乙級——1078(字串壓縮和解 判斷邊界)Java實現

題目:字串壓縮與解壓 (20 分) 文字壓縮有很多種方法,這裡我們只考慮最簡單的一種:把由相同字元組成的一個連續的片段用這個字元和片段中含有這個字元的個數來表示。例如 ccccc 就用 5c 來表示。如果字元沒有重複,就原樣輸出。例如 aba 壓縮後仍然是 aba。 解壓方法就是

java實現zip的壓縮和解

package cn.tzz.zip; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; i

asp.net 實現檔案的壓縮和解

如果該部落格能給您帶來幫助,請給博主一個評論謝謝!!話不多說下面請看具體的實現步驟。 1.首先在web專案中引用ICSharpCode.SharpZipLib.dll檔案,可在博主的資源中下載。 2.具體的壓縮和解壓方法實現如下(程式碼中有詳細的備註) /// <summar

哈夫曼編碼實現檔案的壓縮和解

哈夫曼編碼的概念 哈夫曼編碼是基於哈夫曼樹實現的一種檔案壓縮方式。 哈夫曼樹:一種帶權路徑最短的最優二叉樹,每個葉子結點都有它的權值,離根節點越近,權值越小(根節點權值為0,往下隨深度增加依次加一),樹的帶權路徑等於各個葉子結點的數值與其權值的乘積和。哈夫曼樹如圖: 從圖中我們可以看出

java程式碼實現檔案或資料夾的壓縮和解

這裡寫了個工具類,可以實現檔案的壓縮和解壓功能。 package com.cntaiping.tpi.common.utils; import java.io.BufferedInputStream; import java.io.File; import java.io

利用python中的gzip模組壓縮和解資料流和檔案

直接給出原始碼實現, 分為兩種情況: 1.網路連線中的資料流的壓縮和解壓,或是開啟的檔案讀取一部分 2.開啟檔案壓縮或是解壓 #!/usr/bin/env python #encoding: utf-8 #filename: gzip_demo.py #author: [

linux下檔案和目錄的壓縮和解gzip、bzip2、tar)

檔案的壓縮和解壓: 注意:區分Linux系統中檔案和目錄的區別 首先說一下打包和壓縮的概念: 打包是指將一大堆檔案或目錄什麼的變成一個總的檔案; 壓縮則是將一個大的檔案通過一些壓縮演算法變成一個小檔案。 常見的壓縮副檔名: 副檔名

【Linux】檔案的壓縮和解——gzip、bzip2、tar

檔案壓縮和解壓——gzip 現在test目錄下有一個檔案test_txt和一個目錄tar-test,tar-test目錄下也有一個檔案,使用gzip對檔案test_txt進行壓縮和解壓。 [lx@localhost test]$ ls tar-

java實現zip的壓縮和解(支援中文檔名)

之前一直在用java-unrar-0.3.jar來解壓rar檔案包,一直很正常,但是今天來了箇中文名字的包,類似於這樣的結構: 壓縮包.rar,這個壓縮包裡面還有個資料夾也叫壓縮包,在解壓這個壓縮包的時候出現了亂碼,研究了好久,已經解決,現與大家分享下。 原來解壓

Linux壓縮和解

color make spa 技術 style 一個 -- 命令格式 span 概述:linux下的主流解壓和壓縮命令有gzip、bzip2、tar、rar、zip。其命令格式大致如下,    壓縮:命令 + 參數 + 壓縮文件的名字 + 壓縮的文件或目錄。    解壓:命

【轉】Java壓縮和解文件工具類ZipUtil

span time 其他 unzip empty del pat 列表 bis 特別提示:本人博客部分有參考網絡其他博客,但均是本人親手編寫過並驗證通過。如發現博客有錯誤,請及時提出以免誤導其他人,謝謝!歡迎轉載,但記得標明文章出處:http://www.cnblogs.

Linux下rar 命令壓縮和解詳解

保持 介紹 詳細 註意 壓縮 rar 縮進 command 解壓縮 例1:添加文件或目錄到壓縮檔案中,使用a命令。例如把文件files1添加到abc.rar中,使用a或m命令,a命令把file1文件添加到abc.rar檔案中保持原有的file1文件不變,m命令移動file1

linux 下文件加密壓縮和解的方法

文件加解密方法一:用tar命令 對文件加密壓縮和解壓 壓縮: [html] view plain copytar -zcf - filename |openssl des3 -salt -k password | dd of=filename.des3 此命令對filename文件進行加碼壓縮 生成fi

Linux文件壓縮和解使用記錄

詳細 zip命令 文件中 磁盤 信息 兩種方法 例如 進行 哪些 一:tar(可壓縮可解壓) tar命令是Unix/Linux系統中備份文件的可靠方法,幾乎可以工作於任何環境中,它的使用權限是所有用戶。但是tar本身只是一個文件打包工具,只有和其他工具組合時才具有壓縮/解